Toon posts:

[Delphi6] extern programma klaar ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik roep in een procedure een extern programma aan met:

if ShellExecute(Application.Handle,'open',programma, params, nil,SW_NORMAL) <33 then
begin...... end;

nu wil ik dat de rest van het programma pas verder gaat wanneer het externe programma is afgesloten. hoe controleer ik hierop.

voorbeeld in 'gewone' taal:

start extern programma
if extern programma afgesloten then
start
eind

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 30-11-2025

WOmBaT

Nyaaa!!!

Deze is voor een dosprogramma, maar ook wel aan te passen voor windows:

http://www.delphifaq.com/fq/q2051.shtml
En een hele functie ervoor:
http://www.coastlight.com/ken/delphi/execnwait.html

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Met de Win32 API functie WaitForSingleObject() kun je wachten tot een bepaald proces klaar is met uitvoeren. Voor details: search of MSDN.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Misschien heb je hier wat aan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function Execute(const filename, params: string): Cardinal;
var
  SEInfo: TShellExecuteInfo;
  Directory: string;
begin
  FillChar(SEInfo, SizeOf(SEInfo), 0);
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);
  Directory := ExtractFilePath(filename);
  with SEInfo do
  begin
    fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_NO_UI;
    Wnd := Application.Handle;
    lpFile := PChar(filename);
    nShow := SW_SHOWNORMAL;
    lpVerb := 'open';
    lpParameters := PChar(params);
    lpDirectory := PChar(Directory);
  end;
  if ShellExecuteEx(@SEInfo) then
  begin
    repeat
    Application.ProcessMessages;  // weet niet of je deze nodig hebt
    GetExitCodeProcess(SEInfo.hProcess, Result);
    until (Result <> STILL_ACTIVE) or Application.Terminated;
end;

Verwijderd

Kijk eens op http://delphi.about.com en zoek daar eens op ShellExecute. Ik denk dat je daar wel de info en voorbeelden vindt die je zoekt. :)

Laat ff weten of je hier wat aan gehad hebt!

Verwijderd

Topicstarter
jazekers, probleem opgelost !
Pagina: 1