Hi zusammen
In einem in Javascript geschriebenen Beispielcode wird Shellexecute aufgerufen:
Ich hab im Editor 2 Zeilen, von denen die erste die Javascript-Schnipel wiedergibt und die 2. diie entsprechende Schreibweise in ObjectPascal definieren sollte.
Delphi-Quellcode:
ShellExecute("RUNDLL32.exe", "PRINTUI.DLL,PrintUIEntry /k /n \"PDFCreator\"", "", "open", 1);
ShellExecute('RUNDLL32.exe', 'PRINTUI.DLL,PrintUIEntry /k /n \'PDFCreator\'', '', 'open', 1);
Die ersten 2 Parameter sind String, bzw. PChar. Der 3. Parameter besteht ausdem Bezeichner PDFCreator, gefolgt von einem Backslash. Das ist insofern Korrekt, als Shellexecute an dieser Stelle tatsächlich keinen String erwartet.
Ich hab eigentlich nicht erwartet, dass das gleich funktioniert, insbesondere, da an shellexecute PChars übergeben werden müssen. Dass aber ein Kompilierungsversuch fehlschlägt, weil shellexecute unbekannt ist - in meiner Usesliste ist als erstes
Winapi.Windows eingetragen ist - so hab ich denn ShellAPI dazugefügt. Komischerweise weiss Delphi selbst nichts von seinem guten Bekannten.
Ein kleiner Hinweis auf der entsprechenden Helpseite, und man wüsste, was einzubinden ist. Und die Entwicklung mit Delphi wäre noch schneller!
Gegenwärtiger Stand: wie ich erwartet hatte, moniert sich Delphi am Parameter PDFCreator. Die fehlenden PChar-Umwandlungen machen sich wohl erst später bemerkbar.
Aber was soll der Parameter PDFCreator sein? Das
Handle der von der RunDll zu startenden Anwendung?
Gruss
Delbor