Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
850 Beiträge
 
Delphi 11 Alexandria
 
#1

Hat MS die Rückgabewerte von ShellExecute geändert?

  Alt 12. Aug 2013, 13:21
Wenn mit ShellExecute eine Datei geöffnet werden soll, für die kein verknüpftes Programm existiert wurde bisher immer eine 31 (SE_ERR_NOASSOC) zurückgegeben. Das war jahrelang so. Nun habe ich entdeckt, dass die Funktion statt der 31 eine 42 zurückgibt (Win7, 32bit). Warum? Die Doku von MS kennt davon nichts. Kann das mal bitte jemand testen?


Delphi-Quellcode:
//uses ShellAPI
var
  FileName: string;
begin
  FileName := 'E:\blubb.xyz';
  if not FileExists(FileName) then
    MessageDlg('Datei exisitert nicht', mtError, [mbOK], 0)
  else
    showmessage(IntToStr(ShellExecute(0, nil, @FileName[1], nil, nil, 1)));
end;
  Mit Zitat antworten Zitat