Shellexecute und Umlaute

Antworten
AlterMann
Beiträge: 233
Registriert: So 13. Dez 2009, 09:43
OS, Lazarus, FPC: Lazarus 3.0 (rev lazarus_3_0) FPC 3.2.2 i386-win32-win32/win64
CPU-Target: x86 64Bit
Wohnort: Niederösterreich

Shellexecute und Umlaute

Beitrag von AlterMann »

Hallo

Ich rufe aus einem Programm den Standard-PDFReader auf indem ich an Shellexecute den Dateinamen samt Pfad übergebe, nämlich so:

Code: Alles auswählen

fehler := Shellexecute(Handle,'',PChar(datei),nil,nil,sw_shownormal);


Das funktioniert auch ganz prächtig, solange keine Umlaute im Dateinamen enthalten sind.

Sind diese jedoch vorhanden liefert ShellExecute den Fehler 2 (Datei nicht gefunden) zurück und ruft nix auf.

Den gesamten Pfad (samt Dateinamen) in Anführungszeichen zu setzen hat auch nichts gebracht.

So sieht der Pfad, der nicht funktioniert, Beispielsweise aus:
"\\Klein\TestFreigabe\Zeichnungen-PDF\\EV 06\Kartei BZÜä (1).pdf"

Kann mir jemand helfen?

LG
Christian
Früher war alles besser. Und aus Holz!

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Shellexecute und Umlaute

Beitrag von Mathias »

Probier mal .

Code: Alles auswählen

UTF8ToConsole(Datei)
oder

Code: Alles auswählen

UTF8ToSys(Datei)


Du hast noch 2 \\ hintereinander in deinem Pfad, könnte auch noch ein Fehler sein.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

k.meier
Beiträge: 19
Registriert: So 12. Apr 2015, 14:54

Re: Shellexecute und Umlaute

Beitrag von k.meier »

wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?
wir sind die Meiers ;-)

baumina
Beiträge: 152
Registriert: Mo 3. Feb 2014, 14:07
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Shellexecute und Umlaute

Beitrag von baumina »

k.meier hat geschrieben:wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?


Vielleicht weil das seit vielen Jahren Realität ist.
.

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Shellexecute und Umlaute

Beitrag von Aliobaba »

k.meier hat geschrieben:wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?
... und weil diese problemlos möglich ist und auf breiter Front gemacht wird. Ich selber vermeide dies zwar auch, kann mich aber doch nicht von "Fremddateien" ausschließen.

Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Shellexecute und Umlaute

Beitrag von Antrepolit »

k.meier hat geschrieben:wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?

Wie witzig. Würde ich das meiner Freundin erzählen, wüsste sie bestimmt gerne, warum denn nicht. Und auch Sie benutzt einen Computer, auch sie vergibt Dateinamen und auch sie gehört zu einer Zielgruppe, an die man Software verkaufen möchte, die mit Dateinamen arbeitet. Also warum ist das bitte eine Schnapsidee?
Grüße, Antrepolit

care only if your os is really burning

hausi
Beiträge: 132
Registriert: Mi 23. Sep 2009, 08:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Shellexecute und Umlaute

Beitrag von hausi »

Stimmt der Pfad und funktioniert es mit einem PDF ohne Umlaute im selben Pfad? Oft ist der Pfad das Problem.

Hausi

k.meier
Beiträge: 19
Registriert: So 12. Apr 2015, 14:54

Re: Shellexecute und Umlaute

Beitrag von k.meier »

baumina hat geschrieben:
k.meier hat geschrieben:wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?


Vielleicht weil das seit vielen Jahren Realität ist.


trotzdem Schnapsidee
wir sind die Meiers ;-)

baumina
Beiträge: 152
Registriert: Mo 3. Feb 2014, 14:07
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Shellexecute und Umlaute

Beitrag von baumina »

k.meier hat geschrieben:
baumina hat geschrieben:
k.meier hat geschrieben:wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?


Vielleicht weil das seit vielen Jahren Realität ist.


trotzdem Schnapsidee


Da wir uns nicht mehr im DOS-Zeitalter, in dem Dateinamen mit max. 8 Zeichen, keine Leerzeichen und keine Umlaute erlaubt waren, befinden, sollte jedes Programm das in diesem Jahrtausend entwickelt wurde/wird und sich nicht der Lächerlichkeit aussetzen möchte, unbedingt alle vom Betriebssystem aus erlaubten Datei- und Verzeichnisnamen unterstützen.
.

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Shellexecute und Umlaute

Beitrag von Antrepolit »

k.meier hat geschrieben:
baumina hat geschrieben:
k.meier hat geschrieben:wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?


Vielleicht weil das seit vielen Jahren Realität ist.


trotzdem Schnapsidee

"...und ich hab trotzdem Recht! Menno!" Sehr erwachsen. :roll:
Grüße, Antrepolit

care only if your os is really burning

VB_Lazarus
Beiträge: 90
Registriert: Do 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10/11 32/64bit, L 2.2.0 32bit, FPC 3.2.2 32bit
CPU-Target: 32Bit

Re: Shellexecute und Umlaute

Beitrag von VB_Lazarus »

Hallo Christian,

ich hatte dasselbe Problem.

Ich benutze folgenden Funktion:

LCLIntf.OpenDocument(UTF8ToSys(Dateiname)) <> true

Gruß

AlterMann
Beiträge: 233
Registriert: So 13. Dez 2009, 09:43
OS, Lazarus, FPC: Lazarus 3.0 (rev lazarus_3_0) FPC 3.2.2 i386-win32-win32/win64
CPU-Target: x86 64Bit
Wohnort: Niederösterreich

Re: Shellexecute und Umlaute

Beitrag von AlterMann »

Mathias hat geschrieben:Probier mal .

Code: Alles auswählen

UTF8ToSys(Datei)


Du hast noch 2 \\ hintereinander in deinem Pfad, könnte auch noch ein Fehler sein.


Das war's! :D

Vielen Dank.

@k.meier
Meine Programme sind für Mitarbeiter gemacht, die eben haufenweise Dateien mit Umlauten im Namen haben.
Da fände ich es merkwürdig darauf keine Rücksicht zu nehmen.
Früher war alles besser. Und aus Holz!

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Shellexecute und Umlaute

Beitrag von Mathias »

Das war's!

UTF8ToSys oder die beiden \\ ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

AlterMann
Beiträge: 233
Registriert: So 13. Dez 2009, 09:43
OS, Lazarus, FPC: Lazarus 3.0 (rev lazarus_3_0) FPC 3.2.2 i386-win32-win32/win64
CPU-Target: x86 64Bit
Wohnort: Niederösterreich

Re: Shellexecute und Umlaute

Beitrag von AlterMann »

Mathias hat geschrieben:
Das war's!

UTF8ToSys oder die beiden \\ ?


UTF8ToSys!

Die beiden \\ haben komischerweise bei (umlautlosem) Pfad auch nicht gestört.
Entfernt hab ich sie trotzdem.
Früher war alles besser. Und aus Holz!

AlterMann
Beiträge: 233
Registriert: So 13. Dez 2009, 09:43
OS, Lazarus, FPC: Lazarus 3.0 (rev lazarus_3_0) FPC 3.2.2 i386-win32-win32/win64
CPU-Target: x86 64Bit
Wohnort: Niederösterreich

Re: Shellexecute und Umlaute

Beitrag von AlterMann »

VB_Lazarus hat geschrieben:Hallo Christian,

ich hatte dasselbe Problem.

Ich benutze folgenden Funktion:

LCLIntf.OpenDocument(UTF8ToSys(Dateiname)) <> true

Gruß



Nachtrag:
Seit dem letzten Update auf Lazarus 1.6 funktionierte es wieder nicht.
Jetzt mach ich es mit LCLIntf.OpenDocument wie von Dir dankenswerterweise vorgeschlagen.
Das funktioniert.

LG
Christian
Früher war alles besser. Und aus Holz!

Antworten