Pagina1 van 1
Forum

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.



Deel:
Meldingen
Alles wissen

[Opgelost] Delphi - Gebruik maken van de ShellExecute return waarden

1 Berichten
1 Gebruikers
0 Reactions
890 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2864
Topic starter  

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;

   
BeantwoordenCiteren
Deel: