none
VB2005でWin32APIのGetPrinterDriverDirectoryでプリンタードライバーのフルパスを取得する方法について RRS feed

  • 質問

  • お世話になります。「いた」と申します。

    プリンタードライバーのフルパスを取得するのに、Win32APIのGetPrinterDriverDirectoryを使えばできそうだと

    いうことは調べて判りましたが、その使い方がよくわからず困っています。

    厚かましいお願いですが、VB2005でのDeclare宣言の部分からメソッド読みだしの部分まで全てを教えて下さい。
    この手のAPIは初めて使用し、ピンプンカンプン状態です。
    よろしくお願いします。

    又、.net Frameworkで代用できるのならそちらでも構いませんが。

    雑ぱくなお願いで申し訳ありませんが、よろしくお願いします。

    2007年4月18日 2:06

回答

すべての返信

  • VB2003 のコードなので参考にならないかも知れませんが、

    呼び出すだけなら下記の如く。

    Code Snippet

    Public Declare Auto Function GetPrinterDriverDirectory _
         Lib "winspool.drv" ( _
         ByVal pName As String, _
         ByVal pEnvironment As String, _
         ByVal Level As Integer, _
         ByVal pDriverDirectory As System.Text.StringBuilder, _
         ByVal cbBuf As Integer, _
         ByRef pcbNeeded As Integer) As Boolean

     

    Public Shared Function GetPrinterDriverDirectory() As String

        Dim driverDirectory As New System.Text.StringBuilder(256)
         Dim cbNeeded As Integer = 0
         If GetPrinterDriverDirectory( _
             Nothing, Nothing, 1, _
             driverDirectory, driverDirectory.Capacity + 1, cbNeeded) Then
             Return driverDirectory.ToString()
         Else
             Throw New System.ComponentModel.Win32Exception
         End If

    End Function

     

    Public Shared Sub Main()

        Dim thePath As String = GetPrinterDriverDirectory()

    End Sub

    代用のメソッドは、……あるのかな?

    2007年4月19日 2:11
  • ありがとうございました。

    VB2005でも問題なく動作しました。

     

    助かりました。

     

    2007年4月20日 3:55