初心者ですいませんが、どなたか教えてください。
既定のプリンタのプリンタ名を取得する方法を教えて欲しいのです。
いろいろと調べて、APIの「GetDefaultPrinter」というのを見つけたのですが、Win9X系は対
応していないみたいなのです。
その他にもあるみたいなのですが、理解できずに苦しんでおります。
何か、サンプルがあれば理解できるのですが・・・
どうか皆さん、よろしくお願いします。
EnumPrinters()の第1引数にPRINTER_ENUM_DEFAULTを指定すると、
デフォルトプリンタの情報が取得できるようです。
Google で[GetDefaultPrinter] と [NT] で検索したら出てきたんで、ご参考に。
http://www.vbvbvb.com/jp/gtips/0351/gGetDefaultPrinter.html
http://n76cd-01p02.ppp11.odn.ad.jp/old/01950.html
sugar さん、回答ありがとうございます。
「EnumPrinters」をヘルプで調べましたが、Win9X系しかサポートされていないのではないで
しょうか?
ちなみにMSでやっとみつけたのですが、
GetProfileString(windows, device, ,,,, buffer, sizeof(buffer));
を使えば、OSに依存することなく取得できるみたいです。
そこで、
CString CGet::f_DefaultPrinterName()
{
DWORD DRet;
CString WorkStr;
char buffer[MAX_PATH];
int ch = ',';
char *pdest;
int result;
DRet = GetProfileString(windows, device, ,,,, buffer, sizeof(buffer));
pdest = strchr(buffer, ch);
result = pdest - buffer;
WorkStr = CString(buffer, result);
return (WorkStr);
}
という関数を作成したのですが、どうでしょうか?
いちおうは解決したのですが、「EnumPrinters」の使い方を詳しく教えていただけませんでし
ょうか?
よろしくお願いします。
ん さん、回答ありがとうございます。
> 「EnumPrinters」をヘルプで調べましたが、
> Win9X系しかサポートされていないのではないでしょうか?
>
そうです。
NT系での取得方法はご存知のようでしたので、Win9X系での取得方法が知りたいのかと。
当方にはWin9X環境がないので動作確認ができないのですが、
こんな感じになるのではないでしょうか。
PRINTER_INFO_5 pi5;
DWORD dwNeeded;
DWORD dwReturned;
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, (LPBYTE)&pi5,
sizeof(PRINTER_INFO_5), &dwNeeded, &dwReturned);
sugar さん、回答ありがとうございます。
試してみたいのですが、時間がないので、
別の機会で試みたいと思います。