DOBON.NET DOBON.NETプログラミング掲示板過去ログ

通常使うプリンタについて質問

分類:[.NET]

vb6では以下のようにして通常使うプリンタを変更していたんですが、
  param = Printers(0).DeviceName & "," & _
Printer(0).DriverName & "," & _
Printers(0).Port

WriteProfileString "windows", "device", param

' Windows NT/2K
SendMessage HWND_BROADCAST, WM_WININICHANGE, 0&, ByVal 0&

vb.netではDriverNameとPortが取得できません。
vb.netで通常使うプリンタを変更する方法を教えていただけないでしょうか?
お願いします。
■No1950に返信(PASAさんの記事)
> vb.netではDriverNameとPortが取得できません。
> vb.netで通常使うプリンタを変更する方法を教えていただけないでしょうか?
> お願いします。

VB6ではDriverNameとPortが標準で取得できたのかのでしょうか?それはともかく、解決法としては、マイクロソフトにあるコードをVB.NETに書き換るということになるでしょうか。申し訳ありませんが私にはその暇がありません。

・266767 - HOWTO: Set Which Printer Is the System Default Printer
http://support.microsoft.com/default.aspx?scid=kb;EN-US;266767

それ以外の方法としては、WSHを使う方法もあります。これは簡単です。

Dim network As Object = CreateObject("WScript.Network")
Dim printerName As String = "Printer Name"
network.SetDefaultPrinter(printerName)

また、WMIを使う方法もあります(Win32_PrinterクラスのSetDefaultPrinterメソッド)。しかしこれはWinXP以降でしか使用できないようです。
> VB6ではDriverNameとPortが標準で取得できたのかのでしょうか?それはともかく、解決法としては、マイクロソフトにあるコードをVB.NETに書き換るということになるでしょうか。申し訳ありませんが私にはその暇がありません。
>
> ・266767 - HOWTO: Set Which Printer Is the System Default Printer
> http://support.microsoft.com/default.aspx?scid=kb;EN-US;266767
>
> それ以外の方法としては、WSHを使う方法もあります。これは簡単です。
>
> Dim network As Object = CreateObject("WScript.Network")
> Dim printerName As String = "Printer Name"
> network.SetDefaultPrinter(printerName)
>
> また、WMIを使う方法もあります(Win32_PrinterクラスのSetDefaultPrinterメソッド)。しかしこれはWinXP以降でしか使用できないようです。

WSHを使い解決しました。ありがとうございます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板