Shellexecute und Umlaute

Shellexecute und Umlaute

Beitragvon AlterMann » 29. Apr 2015, 19:04 Shellexecute und Umlaute

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!
AlterMann
 
Beiträge: 201
Registriert: 13. Dez 2009, 09:43
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7prof 64bit - Lazarus 1.6 r51630 FPC 3.0.0 i386-win32-win32/win64 | 
CPU-Target: x86 64Bit
Nach oben

Beitragvon Mathias » 29. Apr 2015, 19:09 Re: Shellexecute und Umlaute

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3993
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon k.meier » 30. Apr 2015, 07:51 Re: Shellexecute und Umlaute

wer kommt auch auf die Schnaps-Idee Umlaute in Datei- und Verzeichnisnamen zu verwenden ?
wir sind die Meiers ;-)
k.meier
 
Beiträge: 19
Registriert: 12. Apr 2015, 13:54

Beitragvon baumina » 30. Apr 2015, 08:00 Re: Shellexecute und Umlaute

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.
.
baumina
 
Beiträge: 152
Registriert: 3. Feb 2014, 14:07
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Aliobaba » 30. Apr 2015, 09:24 Re: Shellexecute und Umlaute

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
Mein Lazarus-Lieblingsprojekt: "MyMemoryDB" ( http://www.mymemorydb.n-bay.de/ )
Aliobaba
 
Beiträge: 328
Registriert: 1. Mai 2012, 08:11

Beitragvon Antrepolit » 30. Apr 2015, 09:43 Re: Shellexecute und Umlaute

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
Antrepolit
 
Beiträge: 340
Registriert: 12. Sep 2006, 07:57

Beitragvon hausi » 30. Apr 2015, 09:52 Re: Shellexecute und Umlaute

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

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

Beitragvon k.meier » 30. Apr 2015, 10:13 Re: Shellexecute und Umlaute

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 ;-)
k.meier
 
Beiträge: 19
Registriert: 12. Apr 2015, 13:54

Beitragvon baumina » 30. Apr 2015, 10:27 Re: Shellexecute und Umlaute

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.
.
baumina
 
Beiträge: 152
Registriert: 3. Feb 2014, 14:07
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Antrepolit » 30. Apr 2015, 10:37 Re: Shellexecute und Umlaute

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
Antrepolit
 
Beiträge: 340
Registriert: 12. Sep 2006, 07:57

Beitragvon VB_Lazarus » 30. Apr 2015, 11:13 Re: Shellexecute und Umlaute

Hallo Christian,

ich hatte dasselbe Problem.

Ich benutze folgenden Funktion:

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

Gruß
VB_Lazarus
 
Beiträge: 68
Registriert: 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10 64bit / Windows 7 32bit, L 1.6.4 32bit, FPC 3.0.2 32bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon AlterMann » 1. Mai 2015, 09:13 Re: Shellexecute und Umlaute

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!
AlterMann
 
Beiträge: 201
Registriert: 13. Dez 2009, 09:43
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7prof 64bit - Lazarus 1.6 r51630 FPC 3.0.0 i386-win32-win32/win64 | 
CPU-Target: x86 64Bit
Nach oben

Beitragvon Mathias » 1. Mai 2015, 15:41 Re: Shellexecute und Umlaute

Das war's!

UTF8ToSys oder die beiden \\ ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3993
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon AlterMann » 1. Mai 2015, 16:01 Re: Shellexecute und Umlaute

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: 201
Registriert: 13. Dez 2009, 09:43
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7prof 64bit - Lazarus 1.6 r51630 FPC 3.0.0 i386-win32-win32/win64 | 
CPU-Target: x86 64Bit
Nach oben

Beitragvon AlterMann » 28. Jun 2016, 09:21 Re: Shellexecute und Umlaute

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!
AlterMann
 
Beiträge: 201
Registriert: 13. Dez 2009, 09:43
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7prof 64bit - Lazarus 1.6 r51630 FPC 3.0.0 i386-win32-win32/win64 | 
CPU-Target: x86 64Bit
Nach oben

• Themenende •

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried