Einzelnen Beitrag anzeigen

Abstract

Registriert seit: 11. Jan 2010
1 Beiträge
 
#1

Standard Drucker setzen (Delphi/C) Probleme

  Alt 11. Jan 2010, 14:15
Hallo zusammen,

folgender Sachverhalt:
Das Einstellen des Standard Druckers in Delphi oder C(++) ist ja einfach und in diversen Foren zu finden. Allerdings muß ich sagen daß es in Delphi wohl Probleme gegenüber C(++) gibt.

Delphi:
Hier sind mir 2 Befehle bekannt, von denen SetPrinter scheinbar nicht funzt:

 Printer.SetPrinter(PChar('Druckername'), sDriver, sPort, hDeviceMode); Also bleibt nur

Delphi-Quellcode:
StrPCopy(ResStr,'Druckername');
WriteProfileString ('windows', 'device', ResStr);
StrCopy (ResStr, 'windows');
übrig.

C(++):
Zitat:
SetDefaultPrinter (Druckername);
Broadcast erfolgt anschließend in beiden Sprachen.

Nun zum Problem:
In C(++) funktioniert alles einwandfrei, d.h. Windows erkennt den neuen SD einwandfrei an und das schwarze Häkchen ist auch richtig gesetzt (Start/Einstellungen/Drucker und Faxgeräte).
In Delphi dagegen ist das Häkchen weg, wie wenn kein SD erkannt bzw. gesetzt wird.
(Konsolenanwendung als Test)

Das große Problem ist, daß eine Win-Applikation in Delphi verschiedene Drucker ansteuert. Dazu wird immer der aktuelle SD geholt, temp. nen anderer D zum SD erklärt, benutzt und anschließend der alte SD wiederhergestellt. Will man danach mit einer anderen Applikation den SD benutzen, stürzt diese ab, sofern man nicht vorher extra manuell (Start/Einstellungen/Drucker und Faxgeräte) den SD nochmals zum SD erklärt (obwohl der schw. Haken schon richtig steht).

In C dagegen passiert dies nicht. Deshalb behaupte ich einfach mal, daß in C der einzige Befehl mehr macht als das Pendant in Delphi.

Was mache ich in Delphi falsch?
Wer kennt das und kann weiterhelfen?

Danke!
  Mit Zitat antworten Zitat