ShellExecute-Problem, Pfad bzw. Parameter wird offensichtlich nicht korrekt übergeben



  • Hallo!

    Ich rufe per ShellExecute den Befehl zum Drucken von PDF-Dateien auf. Das funktioniert soweit auch. Haben die Dateinamen allerdings ein Leerzeichen oder sonstige Sonderzeichen drin funktioniert das nicht mehr.

    Mein Aufruf von ShellExecute sieht wie folgt aus:

    // Dateien drucken
    ShellExecute(Handle, L" open ", sGSPrint.c_str(), sPDFArbeitspfad.c_str(), NULL, SW_HIDE);
    

    Wenn ich mir anzeigen lasse was übergeben wird erhalten ich:

    C:\Program Files (x86)\Ghostgum\gsview\gsprint.exe D:\Temp\quelle\LSG RG 16175683 v. 01.12.14.pdf
    

    Sieht eigentlich alles korrekt aus.

    Es kommt übrigens auch keine Fehlermeldung. Er druckt einfach nichts.

    Seh ich wieder vor lauter Bäumen den Wald nicht?

    Danke und viele Grüße



  • Setzt doch deine Pfade in Anführungsstriche. Am besten du bastelst dir gleich ein Funktion dafür.



  • Braunstein schrieb:

    Setzt doch deine Pfade in Anführungsstriche. Am besten du bastelst dir gleich ein Funktion dafür.

    Gibt es eventuell schon in der Vcl.
    siehe QuotedStr bzw. AnsiQuotedStr
    keine Ahnung ob die noch existieren, in meinem uralten Builder 5.0 existieren sie.



  • case schrieb:

    Braunstein schrieb:

    Setzt doch deine Pfade in Anführungsstriche. Am besten du bastelst dir gleich ein Funktion dafür.

    Gibt es eventuell schon in der Vcl.
    siehe QuotedStr bzw. AnsiQuotedStr
    keine Ahnung ob die noch existieren, in meinem uralten Builder 5.0 existieren sie.

    Die gibt es da. Die machen nur nicht unbedingt was du willst. Diese Funktionen setzen den übergebenden String zwischen halbe Anführungsstriche wenn möglich (also 'mmm'). Das wird in der WinAPI nicht funktionieren.



  • Sorry hast recht, habe ich irgendwie übersehen.



  • Braunstein schrieb:

    Diese Funktionen setzen den übergebenden String zwischen halbe Anführungsstriche wenn möglich (also 'mmm').

    Bist Du da sicher? Ich meine beim AnsiQuotedString kann man auch den Quote-Char angeben... Beim QuotedString hast Du recht, da kommen nur halbe Anführungszeichen raus.



  • Da hast du recht. Man kann da den Quote-Char angeben. Man müsste das mal ausprobieren.



  • Hallo,

    ich wollte berichten das es jetzt klappt. Ich habe es mit "AnsiQuotedStr" gelöst. Vielen Dank für Eure Hilfe und einen schönen Einstieg in die neue Woche.



  • Braunstein schrieb:

    Da hast du recht. Man kann da den Quote-Char angeben. Man müsste das mal ausprobieren.

    Wollt ich gerade machen, da ich hier auf der Arbeit noch einen Rechner mit BCB habe, aber Maik war schneller...

    Danke für die Rückmeldung, Maik.


Anmelden zum Antworten