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

IsDefaultPrinter の使い方

環境/言語:[WindowsXP VB.NET Framework 1.1]
分類:[.NET]

VB.NET を勉強中のおじさんです。
通常使うプリンターを取得したくて調べていたらIsDefaultPrinter プロパティが
見つかったのですが、使い方がよく解りません。WEBで検索してみても使用例らし
きものも見つかりません。
IsDefaultPrinter プロパティの使用方法をご存知の方ご教授のほどお願い致します。
尚、他の方法で一応、通常使うプリンターは取得しております。
こんにちは。

明示的にPrinterNameプロパティをセットすると
常にFalseが返ってくる様ですが。。。

とりあえず、C#で以下のようにシてみてTrueが取れましたYO。

PrintDocument pd = new PrintDocument();

//インストール済プリンタ数判断
if( PrinterSettings.InstalledPrinters.Count > 0 )
{
  string strPrinter = pd.PrinterSettings.PrinterName; //プリンタ名
  
  //明示的にプリンタをセットする。
  //これがあると常にFalseになる様です。
  //pd.PrinterSettings.PrinterName = strPrinter;

  MessageBox.Show( pd.PrinterSettings.IsDefaultPrinter );
}
早速の回答ありがとうございます。
私は、C# は解らないのですが、プリンターが2台あって、それらのIsDefaultPrinter
プロパティを調べると、1台は False に 1 台は True になるのかと思っていたのですが
IsDefaultPrinter プロパティをわざわざ調べなくてもpd.PrinterSettings.PrinterName で
取得できるプリンターが通常使用するプリンターになっているかと思うのですが。

ヘルプの下記の部分が今一理解できません。
プロパティ値
PrinterName が通常使うプリンタの場合は true 。それ以外の場合は false 。

解説
明示的に PrinterName プロパティに null 参照 (Visual Basic では Nothing) (Visual Basic
の場合は Nothing) 以外の文字列値を設定した場合、 IsDefaultPrinter は常に false を返します。
■No4907に返信(窓際のおじさんさんの記事)
こんにちわです。
通常使いプリンターの取得でしたら、下記のような感じで
どうでしょうか?

Dim pd As New System.Drawing.Printing.PrintDocument()
Dim str As String
str = pd.PrinterSettings.PrinterName
MsgBox(str)

ちなみに通常使うプリンターに設定するには

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

どうでしょう?
> 通常使いプリンターの取得でしたら、下記のような感じで
> どうでしょうか?

レス、ありがとうございます。
最初の質問にもかいておりますが、通常使うプリンターの取得は解っております。
IsDefaultPrinter の使い方が理解できなかったので質問したのですが
色々調べていてやっと理解できましたので解決とさせて頂きます。
解決済み!

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