Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!
Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.
Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.
[Opgelost] Delphi - Gebruik maken van de ShellExecute return waarden
Delphi, Lazarus, Free Pascal
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2864
Topic starter
4 november 2013 23:49
Als de returncode van ShellExceute <=32 heb je een probleem.
Als de waarde >32 dan is het de handle van de applicatie of DDE server die het commando uitvoerde.
Je kunt de error natuurlijk afhandelen met een eenvoudige
showmessage(SysErrorMessage(ReturnValue)+ ' '+ IntToStr(ReturnValue))
Voorbeeld;
procedure TForm1.Button1Click(Sender: TObject);
var
errorcode: integer;
begin
errorcode := ShellExecute(0, 'open', pchar('c:test.txt'), nil, nil, SW_NORMAL);
case errorcode of
2:showmessage('bestand niet gevonden');
3:showmessage('pad niet gevonden');
5:showmessage('geen toegang');
8:showmessage('niet genoeg geheugen');
32:showmessage('DLL niet gevonden');
26:showmessage('probleem met delen');
27:showmessage('bestandsnaam associatie incompleet of defect');
28:showmessage('DDE time out');
29:showmessage('DDE mislukt');
30:showmessage('DDE bezig');
31:showmessage('geen geschikte applicatie gevonden');
end;
{
SE_ERR_FNF = 2;
SE_ERR_PNF = 3;
SE_ERR_ACCESSDENIED = 5;
SE_ERR_OOM = 8;
SE_ERR_DLLNOTFOUND = 32;
SE_ERR_SHARE = 26;
SE_ERR_ASSOCINCOMPLETE = 27;
SE_ERR_DDETIMEOUT = 28;
SE_ERR_DDEFAIL = 29;
SE_ERR_DDEBUSY = 30;
SE_ERR_NOASSOC = 31;
}
end;