Hallo!
Ich bin gerade auf einen recht merkwürdigen Fehler gestoßen.
Und zwar benutze ich ShellExecute, um bestimmte Dateiordner zu öffnen. Nun ist mir aufgefallen, dass bestimmte Ordner nicht geöffnet wurden, ohne dass irgendeine Fehlermeldung ausgespuckt wurde.
Ein kleiner Test hat ergeben: Wann immer ich versuche, einen Ordner mit Komma im Namen per ShellExecute zu öffnen, liefert der Aufruf 33 zurück (wie sonst auch immer), ein neues Fenster erscheint jedoch nicht.
Ich benutze ShellExecute so wie
in der Dokumentation angegeben:
ShellExecute(handle, NULL, path_to_folder, NULL, NULL, SW_SHOWNORMAL);
Den Pfad in Anführungszeichen einzuschließen ändert nichts. Alle anderen Ordner, die ich so getestet habe, werden problemlos geöffnet.
Wäre nett, wenn das mal jemand nachprüfen könnte - einfach einen Ordner wie "C:\test, test" anlegen und versuchen, den per
ShellExecute(Application.Handle, nil, 'C:\test, test\', nil, nil, SW_SHOW); zu öffnen. Bei mir passiert einwandfrei reproduzierbar gar nichts.
Und außerdem wäre ich natürlich dankbar für eine vernünftige Alternative zu obigem ShellExecute-Aufruf.
Danke, worm
PS: Habe gerade mal unter HKEY_CLASSES_ROOT\Folder\shell\open\command nachgeguckt. Dort steht "%SystemRoot%\Explorer.exe /idlist,%I,%L" als Befehl. Das klingt natürlich so, als könnte das durch Kommata verwirrt werden. Allerdings hätte ich erwartet, dass das dann durch Anführungszeichen behoben wäre und außerdem klappt es im Explorer über das Kontextmenü ja auch.
Sieht das bei euch genauso aus? Anders? Scheint die Standardeinstellung bei meinem System zu sein.
In the beginning, the universe was created. This has made a lot of people very angry, and is generally considered to have been a bad move.