Windows Standarddrucker ermitteln

30. Juli 2008 11:00

Hallo,

ich möchte über eine Automation ein Pdf-Dokument ausdrucken.
Dazu muss ich dieser Automation den Dokumentenpfad und den Drucker mitgeben, auf dem es ausgedruckt werden soll.

Den Drucker hole ich mir über die Standard PrinterSeletion, nur wenn dort nichts eingetragen ist, bleibt der Parameter "Drucker" halt schlichtweg leer.

Dann soll der, unter Windows eingetragene, Standard-Drucker genommen werden. Wie kann ich diesen unter Navision ermitteln?

Vielen Dank.

Mfg

30. Juli 2008 15:41

vielleicht über die Windows-Umgebungsvariablen?
Befehl lautet hierzu "String := ENVIRON(Name)"

Gruss

Re: Windows Standarddrucker ermitteln

5. August 2008 10:40

Versuch es doch mal mit:

Code:
Name            DataType         Subtype   Length
WshShell        Automation        'Windows Script Host Object Model'.WshShell   
CLEAR(WshShell);
CREATE(WshShell);
SLEEP(5);
RegKey := 'HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device';


Gruß Tom :-)

Re: Windows Standarddrucker ermitteln

5. August 2008 14:41

Selten den Rechner so spektakulär schlafen gelegt :wink:

Da fehlt nicht zufällig noch was?

Re: Windows Standarddrucker ermitteln

5. August 2008 14:46

Ja, da kommt noch was:

Code:
DefaultPrinter := WshShell.RegRead(RegKey);
CLEAR(WshShell);
IF DefaultPrinter <> '' THEN
  DefaultPrinter :=  COPYSTR(DefaultPrinter,1,STRPOS(DefaultPrinter,',')-1);

Name   DataType   Subtype   Length
DefaultPrinter   Text      1024
RegKey   Text      512

Re: Windows Standarddrucker ermitteln

5. August 2008 14:52

McClane hat geschrieben:Selten den Rechner so spektakulär schlafen gelegt :wink:

Sleep ist tatsächlich notwendig, wenn du einen langsamen Rechner hast. Der läuft nämlich auf einen Fehler, wenn die Variable noch nicht aktiv ist!

Da fehlt nicht zufällig noch was?


Das bißchen hättest Du doch auch herausfinden können? ;-)

Oder?

Re: Windows Standarddrucker ermitteln

5. August 2008 14:58

Das mag sein, aber fragen ging einfacher ;)

Und wenn´s um einen langsamen Rechner geht, muss ich wohl eher Sleep(20) oder so nehmen ...