Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Standardprogramm bei shellexecute (...,'print'...) (https://www.delphipraxis.net/57295-standardprogramm-bei-shellexecute-print.html)

Jelly 18. Nov 2005 15:09


Standardprogramm bei shellexecute (...,'print'...)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Als Vorgeschichte dient dieser Thread.

Aber zum Problem... Über
Delphi-Quellcode:
Shellexecute (handle,'print','test.pdf',nil,SW_SHOWNORMAL) ;
Das Programm das dafür benutzt wird, ist in Windows definiert (siehe Anhang).

Das klappt auch, solange beim Befehl nur ein Parameter übegeben wird, wie hier:
"C:\Program Files\Ghostgum\gsview\gsprint.exe" -printer "\\BRUNATA\OKI C5300" "%1"

Jetzt möchte ich aber den Druckernamen ebenfalls als Parameter übergeben. Wie lautet dann der Aufruf von ShellExecute, und wie muss ich den Dateitype definiern.

"C:\Program Files\Ghostgum\gsview\gsprint.exe" -printer "\%2" "%1"
oder
"C:\Program Files\Ghostgum\gsview\gsprint.exe" -printer "\%1" "%2"

scheint nicht zu klappen.

neuronet 18. Nov 2005 16:04

Re: Standardprogramm bei shellexecute (...,'print'...)
 
So, dann gibt's hier auch was von mir:

gsprint -printer "Name"

siehe auch hier:

gsprint Parameter

Meines Wissens muss der lokale Printername angegeben werden...

neuronet 18. Nov 2005 16:12

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Okay... hab's falsch verstanden...

Fällt mir momentan auch nix anderes ein als vorhin:

1. Neuen Default-Printer setzen
2. ShellExecAndWaitA
3. Alten Default-Printer wiederherstellen

neuronet 18. Nov 2005 16:18

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Und wenn Du einfach ein Leerzeichen zwischen die Übergabeparameter setzt???

Delphi-Quellcode:
Shellexecute (handle,'print','test.pdf Lexmark',nil,SW_SHOWNORMAL) ;

Jelly 18. Nov 2005 16:25

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Zitat:

Zitat von neuronet
Und wenn Du einfach ein Leerzeichen zwischen die Übergabeparameter setzt???

Nee, das hab ich schon als erstes probiert.

neuronet 18. Nov 2005 16:36

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Tja....

MSDN - ShellExecute bringt auch nix Neues an den Tag...
Bleibt wohl wirklich nur der manuelle Printertausch...

:cry: :cry: :cry: :cry: :cry:

neuronet 18. Nov 2005 17:27

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Versuche es gerade selbst zu testen, aber die "Print" Zuordnung setzt sich immer wieder von selbst auf AcroRd32.exe zurück....


:wall: :wall: :wall: :wall: :wall:

Jelly 18. Nov 2005 17:52

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Naja, die Zuordnung an sich funktioniert prima, nur krieg ich aber keine weiteren Parameter übermittelt ausser den Dateinamen.

neuronet 18. Nov 2005 17:59

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Wie wäre es dann einfach mit:

Delphi-Quellcode:
ShellExecute (H,'open',pansichar('C:\Programme\Ghostgum\gsview\gsprint.exe -printer "\\Server\Lexmark E232" C:\test.pdf'),nil,nil,0)
Müsstest halt vorher prüfen, ob es sich um ein pdf handelt und dann den String von Hand zusammenbasteln...

Bei mir funzt das so....

Jelly 18. Nov 2005 18:12

Re: Standardprogramm bei shellexecute (...,'print'...)
 
Naja, werde das wohl so machen müssen. Dann muss ich halt für alle in meiner Anwendung auftretenden Dateitypen unterscheiden, aber das sollte machbar sein. Ist halt nur noch etwas umständlich weil das Programm auf mehreren Rechnern läuft, und ich auf die Pfade achten muss.

Aber das Problem mit ShellExecute und 'print' bleibt trotzdem ungelöst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr.
Seite 1 von 2  1 2      

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