Ich muß aus einer Delphi-2-Anwendung den Standarddrucker im Windows
wechseln. Ich erstelle per DDE einen Ausdruck in Winword 6.0. Hier lasse ich
vorher per DDE von Word den Standarddrucker wechseln (weil Word 6 ja nur auf
dem Standarddrucker drucken kann). Nachher ist aber das Problem, daß der
Drucker immer noch Standarddrucker bleibt. Ich möchte aber nun hinterher den
Urzustand wiederherstellen (den alten Standarddrucker wieder einstellen).
Gibts es da eine Möglichkeit (evtl. über die WinAPI oder irgendeine
Komponente)?
Danke für Eure Hilfe
Olaf
Frequently Asked Questions
Changing windows default printer in code.
Question:
How do I change the default Windows printer?
Answer:
You need to change the printer, driver, and port as listed in the
device key of the Windows section in the Windows.ini file, then
broadcast a system wide WM_WININICHANGE message.
Example:
procedure TForm1.Button1Click(Sender: TObject);
var
WinIni : TIniFile;
WinIniFileName : array[0..MAX_PATH] of char;
s : array[0..64] of char;
begin
GetWindowsDirectory(WinIniFileName, sizeof(WinIniFileName));
StrCat(WinIniFileName, '\win.ini');
WinIni := TIniFile.Create(WinIniFileName);
try
WinIni.WriteString('windows',
'device',
'HP LaserJet Series II,HPPCL,LPT1:');
finally
WinIni.Free;
end;
StrCopy(S, 'windows');
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@S));
end;
--
email:
A.Hall...@aha.ping.de
or Andreas.H...@gmx.de
-