デフォルトプリンター

解決


ガオ〜  2009-07-08 15:41:18  No: 35071  IP: 192.*.*.*

Delphi 2007
Windows Vista SP1
の環境で
デフォルトプリンタを変更したいのですが
どのようにすればいいのでしょうか?

編集 削除
たぬ吉  2009-07-09 09:24:15  No: 35072  IP: 192.*.*.*

これでできましたが、XPでしか確認してません。
Vista環境がないので。。。

procedure ChangeDefaultPrinter;
var
  DevMode: THandle;
  Device,Driver,Port: array[0..79] of Char;
  s: String;
begin
  Printer.PrinterIndex := 0;   //変更したいプリンタのインデックス(Printer.Printersのインデックス)
  Printer.GetPrinter(Device,Driver,Port,DevMode);
  s := StrPas(Device) + ',' + StrPas(Driver) + ',' + StrPas(Port);
  WriteProfileString('windows','device',PChar(s));
  SendMessage(HWND_BROADCAST,WM_WININICHANGE,0,Longint(PChar('windows')));
end;

usesにPrintersを追加してください。

Delphi2009

編集 削除
ガオ〜  2009-07-09 13:39:02  No: 35073  IP: 192.*.*.*

たぬ吉さん、早速のご回答ありがとうございます。
試したところVista環境でも変更できました。
今後ともよろしくお願い致します。

編集 削除