- ベストアンサー
VBからプリンタの設定変更
プリンタ(TCP/IP)を設定する際に プリンタドライバを変更する方法を ご教授いただけませんでしょうか? 尚、プリンタドライバは既に インストールされているものとします。 また、複数台に異なるドライバを 設定するため、おなじものを他PC に設定することはありません。 動作環境はXP Pro ソフトバージョンはVB6 よろしくお願いします。
- みんなの回答 (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
その他の回答 (1)
- jmh
- ベストアンサー率23% (71/304)
こんにちは。 私には分からないかもしれないですが、とりあえあず、それを手動でする手順を(プリンタフォルダを開いたトコロぐらいから)教えていただけないでしょうか。
お礼
返信遅れ申し訳ございません。 自己解決いたしました。 どうもありがとうございました。
お礼
printui.dllにて解決いたしました。 上記を試してはいないのですがWin2k以前も できそうなAPIですのでまたいつか使う日が きそうですね。どうもありがとうございました。