• ベストアンサー

VBからプリンタの設定変更

プリンタ(TCP/IP)を設定する際に プリンタドライバを変更する方法を ご教授いただけませんでしょうか? 尚、プリンタドライバは既に インストールされているものとします。 また、複数台に異なるドライバを 設定するため、おなじものを他PC に設定することはありません。 動作環境はXP Pro ソフトバージョンはVB6 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

通常使うプリンタの変更でしたら、以下のような感じでできます。 strDeviceName, strDriverName, strPort 等の引数はクライアントPCのPrinterオブジェクトから取得してください。 '------------------------ Private Declare Function GetVersion Lib "kernel32" () As Long Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Const HWND_BROADCAST = &HFFFF& Const WM_WININICHANGE = &H1A Public Sub psubSetWindowsDefaultPrinter(strDeviceName As String, _ strDriverName As String, strPort As String) Dim strParam As String strParam = strDeviceName & "," & strDriverName & "," & strPort WriteProfileString "windows", "device", strParam If pfncIsWindowsNT() Then 'Windows NT SendMessage HWND_BROADCAST, WM_WININICHANGE, 0&, ByVal 0& Else 'Windows 95 SendMessage HWND_BROADCAST, WM_WININICHANGE, 0&, ByVal "windows" End If End Sub Public Function pfncIsWindowsNT() As Boolean pfncIsWindowsNT = IIf(GetVersion() And &H80000000, False, True) End Function

stouma
質問者

お礼

printui.dllにて解決いたしました。 上記を試してはいないのですがWin2k以前も できそうなAPIですのでまたいつか使う日が きそうですね。どうもありがとうございました。

その他の回答 (1)

  • jmh
  • ベストアンサー率23% (71/304)
回答No.1

こんにちは。 私には分からないかもしれないですが、とりあえあず、それを手動でする手順を(プリンタフォルダを開いたトコロぐらいから)教えていただけないでしょうか。

stouma
質問者

お礼

返信遅れ申し訳ございません。 自己解決いたしました。 どうもありがとうございました。

関連するQ&A