Autor Beitrag
Christian213
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: Do 16.06.11 10:24 
Hallo zusammen,

ich werde hier noch wahnsinnig mit dem Problem. Habe inzwischen alle denkbaren Ansätze durchprobiert, aber finde keine Lösung:
Ich lese per "GetEnvironmentVariable" die Umgebungsvariable "APPDATA" aus, bastel mir einen Pfad zusammen und möchte dies dann an "FindFirst" übergeben, wo dann rekursiv mit FindNext usw. ein Verzeichnisbaum durchgesteppt wird.
Das klappt auch alles wunderbar, allerdings nicht wenn "APPDATA" Umlaute enthält, bspw. "C:\Users\Erich Kühl\AppData\Roaming". Diese werden irgendwie komplett falsch an FindFirst übergeben.
Auch ein manuelles Konvertieren mittels "OEMtoANSI" u.Ä. brachte keine Lösung.

Meine Fragen:

- Was für ein Encoding verwendet Windows standardmäßig bei den Environment-Variablen?
- Was erwartet Windows bei den FILE-API Funktionen wie FindFirst oder ExecuteProcess?
- Wie kann ich dies so konvertieren, dass es funzt?

Wie gesagt, ich habe etliche "müsste eigentlich so funktionieren"-Beispiele schon durch, wäre also toll wenn mir jemand ein Beispiel geben könnte was tatsächlich in der Praxis auch funktioniert. ;o)

Vielen Dank schon mal!

Gruß,
Christian
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 16.06.11 10:41 
Hallo und :welcome:

Lass einfach den Umweg mit der Umgebungsvariable weg und mach es gleich richtig. ;-)
www.delphi-library.de/viewtopic.php?t=9428

Für diesen Beitrag haben gedankt: Christian213
Christian213 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: Do 16.06.11 11:11 
Hallo Sebastian,

Danke für die Antwort.
Verstehe ich das richtig, dass die "SH-Funktionen" also alle bereits "save" was Umlaute angeht?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Funktioniert leider genauso wenig wie meine vorigen Versuche.
Aus meinem Test-Account "Ümüt Üzkäl" wird folgendes (siehe Screenshot).
Hier scheint also doch noch irgend eine Form des (De-)Codings benötigt zu werden.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Mein Fehler - funktioniert doch! Ich hatte nur im Code noch ein "AnsiToUTF8" vom Testen vergessen rauszunehmen *g* ;-)
Eine Frage hätte ich aber noch: Gibt es eine Möglichkeit die Funktion "GetSpecialFolder" von der verlinkten Seite auch ohne ActiveX zu bauen?
Ich bin mir nicht sicher, ob dies auch auf allen Zielsysteme verfügbar ist.

Danke!

Gruß,
Christian
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 16.06.11 11:52 
Das ist eine Standardfunktion der Windows-API. Solange du unter Windows (zumindest 2000 bis 7) bist, funktioniert die auch.

Für diesen Beitrag haben gedankt: Christian213
Christian213 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: Do 16.06.11 11:58 
Alles klar, tausend Dank! :-)