Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   standarddrucker wechseln (https://www.delphipraxis.net/159741-standarddrucker-wechseln.html)

khh 11. Apr 2011 11:04

standarddrucker wechseln
 
Hallo zusammen,
ich wechsle bei der Ausführung von Tprintdialog den Standarddrucker.
Danach führe ich per ShellExecute eine anderes Programm aus, welches auf diesen neu gesetzten Standarddrucker drucken soll.
nach dem Aufruf von ShellExecute wird der Standarddrucker vom aufrufenden Programm wieder zurück gesestzt.
Leider funktioniert das nicht wie gewollt.
Die Druckausgabe wird auf den zurückgesetzten Drucker gelenkt.
Wenn ich auf vor dem zurücksetzen einen breakpoint setze und das Prog kurz anhalte, funktioniert es.
Gibts es ne andere Möglichkeit dem aufgerufenen Programm den gewünschten Drucker , vieleicht per Parameter, zu übergeben?


Danke Gruss KHH

uligerhardt 11. Apr 2011 11:10

AW: standarddrucker wechseln
 
Hast du denn den Quelltext des aufzurufenden Programms? Wenn ja, kannst du vielleicht PrinterIndex oder den Namen des Druckers übergeben und dort auswerten.

ConnorMcLeod 11. Apr 2011 11:15

AW: standarddrucker wechseln
 
Klingt nach einem Timing-Problem. Als ob Du den Drucker früher zurücksetzt, als das mit ShellExecute gestartete Programm mit dem Drucken beginnt.
lg W

khh 11. Apr 2011 11:18

AW: standarddrucker wechseln
 
Zitat:

Zitat von ConnorMcLeod (Beitrag 1094359)
Klingt nach einem Timing-Problem. Als ob Du den Drucker früher zurücksetzt, als das mit ShellExecute gestartete Programm mit dem Drucken beginnt.
lg W

naja, wenn ich das Prog vor dem Zurücksetzen anhalte klappt es ja, also muss da Windows ein Timingproblem haben.

khh 11. Apr 2011 11:18

AW: standarddrucker wechseln
 
Zitat:

Zitat von uligerhardt (Beitrag 1094357)
Hast du denn den Quelltext des aufzurufenden Programms? Wenn ja, kannst du vielleicht PrinterIndex oder den Namen des Druckers übergeben und dort auswerten.

ja habe ich,
ist wohl die sicherste variante :-(

uligerhardt 11. Apr 2011 11:24

AW: standarddrucker wechseln
 
Zitat:

Zitat von khh (Beitrag 1094361)
Zitat:

Zitat von uligerhardt (Beitrag 1094357)
Hast du denn den Quelltext des aufzurufenden Programms? Wenn ja, kannst du vielleicht PrinterIndex oder den Namen des Druckers übergeben und dort auswerten.

ja habe ich,
ist wohl die sicherste variante :-(

Vor allem konzeptionell wesentlich sauberer. Um Raymond Chen zu zitieren: "Don't use global state to manage a local problem".


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz