Zitat von
Chakotay1308:
Korrekt wäre daher:
ShellExecute(Handle, 'open', PChar(Pfad), nil, nil, SW_SHOW);
Der
PSDK sagt dazu
Zitat:
...
lpOperation
...
NULL
For systems prior to Microsoft® Windows® 2000, the default verb is used if it is valid and available in the registry. If not, the "open" verb is used.
For Windows 2000 and later systems, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.
Korrekt ist demnach für EXE-Dateien 'open' oder nil. Für normale Dateien ist auf jeden Fall nil korrekt, da es nicht für jede registriete Dateiendung den Registryeintrag ...Shell\Open\Command gibt. Auch diese Dateien können mit ShellExecute "gestartet" werden, sofern man nicht 'open' sondern nil angibt.