lnk Dateien auf 64bit Vista und Win7 die auf 64bit Anwendungen zeigen welche sich in den entsprechenden 64bit Verzeichnissen befinden.
Z.b. wird Chess.lnk aus dem Startmenu auf ProgramFiles(x86) resolved obwohl es sich in ProgramFiles befindet. (jeweils wenn man den link resolve selber macht oder den ganzen link an ShellExecute gibt). Also versucht ShellExecute das Programm in ProgramFiles(x86) zu starten, findet es nicht und zeigt natürlich den Fehler.
Was ich jetzt grad noch versuche ist das ganze mit ShellExecuteEx zu machen. Das hat angeblich nen entsprechenden Flag um den Fehler zu unterbinden. Funktioniert natürlich nicht...
Delphi-Quellcode:
var
Sei: TShellExecuteInfo;
begin
FillChar(Sei, SizeOf(Sei), #0);
with Sei do
begin
cbSize := SizeOf(Sei);
fMask := SEE_MASK_FLAG_NO_UI;
lpFile := PChar(AFileName);
lpParameters := PCharOrNil(AParams);
lpVerb := '';
lpDirectory := PCharOrNil(ADefaultDir);
nShow := SW_SHOWNORMAL;
end;
ShellExecuteEx(@Sei);
end;
Die Fehlermeldung kommt natürlich trotzdem. Falls da vielleicht jemand ne Idee hat...