Einzelnen Beitrag anzeigen

Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#1

ShellExecute und schreibgeschütztes Medium

  Alt 1. Jul 2012, 22:26
Hallo,
ich würde mit folgendem Code gern ein externes Programm starten:
Code:
ShellExecute(Application.Handle, 'open', PChar(_datei), PChar(_parameter), Nil, SW_ShowNormal);
Dies funktioniert auch problemlos.

ABER:
Wenn das AUSZUFÜHRENDE Programm auf einem schreibgeschützten Medium (in meinem Fall eine SD-Karte) liegt, dann bekomme ich NUR unter WinXP folgende fehlermeldung von Windows (der Rückgabewert ShellExecute ist OK!):

Zitat:
Der Datenträger ist schreibgeschützt und kann nicht beschrieben werden. Entfernen Sie den Schreibschutz vom Datenträger in Laufwerk D:.
Das ganze tritt unter Win7 NICHT auf.

Ich habe es auch schon mit ShellExecuteEx ausprobiert --> gleiches Ergebnis.

Warum glaubt WinXP, ShellExecute wolle irgendwo schreibend zugreifen? Ich habe auch schon die notepad.exe mal auf das schreibgeschützte, und mal auf z.B. C:\ gelegt. --> Auf dem schreibgeschützten Verzeichnis bekomme ich die Fehlermeldung - auf C:\ nicht.
--> führe ich die Datei direkt aus (also nicht über ShellExecute, sondern über den Dateiexplorer), dann kommt KEIN Fehler. Es liegt also DEFINITIV am ShellExecute-Aufruf.

Ich versteh die Welt nicht mehr

Hat jemand eine Idee?

Viele Grüße,

Poolspieler
Andreas
  Mit Zitat antworten Zitat