既定のプリンタのプリンタ名を取得方法 – プログラミング – Home

既定のプリンタのプリンタ名を取得方法
 
通知
すべてクリア

[解決済] 既定のプリンタのプリンタ名を取得方法


ぴょん吉
 ぴょん吉
(@ぴょん吉)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

初心者ですいませんが、どなたか教えてください。

既定のプリンタのプリンタ名を取得する方法を教えて欲しいのです。
いろいろと調べて、APIの「GetDefaultPrinter」というのを見つけたのですが、Win9X系は対
応していないみたいなのです。
その他にもあるみたいなのですが、理解できずに苦しんでおります。
何か、サンプルがあれば理解できるのですが・・・
どうか皆さん、よろしくお願いします。


引用未解決
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 23年前
投稿: 448
 

EnumPrinters()の第1引数にPRINTER_ENUM_DEFAULTを指定すると、
デフォルトプリンタの情報が取得できるようです。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 81
 

Google で[GetDefaultPrinter] と [NT] で検索したら出てきたんで、ご参考に。

http://www.vbvbvb.com/jp/gtips/0351/gGetDefaultPrinter.html
http://n76cd-01p02.ppp11.odn.ad.jp/old/01950.html


返信引用
ぴょん吉
 ぴょん吉
(@ぴょん吉)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

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」の使い方を詳しく教えていただけませんでし
ょうか?
よろしくお願いします。


返信引用
ぴょん吉
 ぴょん吉
(@ぴょん吉)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

ん さん、回答ありがとうございます。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 23年前
投稿: 448
 

> 「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);


返信引用
ぴょん吉
 ぴょん吉
(@ぴょん吉)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

sugar さん、回答ありがとうございます。
試してみたいのですが、時間がないので、
別の機会で試みたいと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました