[Gelöst]Druckernamen als Variable in rundll32.dll printui

31. Juli 2010 13:43

Hallo,
gerade spiele ich ein wenig mit der Einstellung des Standarddruckers herum. Hintergrund ist folgender: Einer unserer Kunden möchte gerne seine AGBs hinter jeden Verkaufsbeleg gedruckt haben. Die AGBs liegen als Word-Dokument und als PDF vor. Jetzt würde ich gerne aus Navision heraus den Systemdrucker im Moment des PDF-Ausdrucks auf den Drucker, der in der Druckeinstellung für den VK-Report hinterlegt ist, umstellen, damit das PDF nicht auf einem anderen Drucker herauskommt.
Grundsätzlich funktioniert das sogar, ABER: Ich kann den Druckernamen anscheinend nur wortwörtlich eingeben, sprich, als Variable geht es nicht. Hier einmal der Code zur Verdeutlichung

Code:
IF ISCLEAR(WShShell) THEN
CREATE(WShShell);

RegKey := 'HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device';

gtxDefaultPrinter := WShShell.RegRead(RegKey);
ginPos:=STRPOS(gtxDefaultPrinter,',');
gtxDefaultPrinter:=DELSTR(gtxDefaultPrinter,ginPos);
gtxReportPrinter:=gcuAppM.FindPrinter(50001);
gtxReportPrinter:='"'+gtxReportPrinter+'"';

WShShell.Run('rundll32 printui.dll,PrintUIEntry /y /n%gtxReportPrinter%');
//WShShell.Run('rundll32 printui.dll,PrintUIEntry /y /n"\\minastirith\IBM Infoprint 1532 PS3"');
CLEAR(WShShell);




Wenn ich die untere Anweisung ausführe, die, wo IBM Infoprint 1532 PS3 drin steht, ausführe, geht es. Führe ich hingegen die obere Anweisung aus, bekomme ich die Fehlermeldung "Der Vorgang konnte nicht abgeschlossen werden. Entweder der eingegebene Druckername ist ungültig oder..."
Weiß hier jemand Rat? Es bringt ja so rein gar nichts, wenn ich den Druckernamen hart codieren muss.

MfG.
Zuletzt geändert von FragenFrager am 7. August 2010 13:17, insgesamt 1-mal geändert.

Re: Druckernamen als Variable in rundll32.dll printui angebe

2. August 2010 10:58

Hast du mal folgendes versucht?
Code:
WShShell.Run(STRSUBSTNO('rundll32 printui.dll,PrintUIEntry /y /n%1',gtxReportPrinter));

Re: Hat funktioniert!!

2. August 2010 13:37

Hallo,
hat geklappt, supi, und vielen, vielen Dank.