uruchamianie po zakończeniu

Odpowiedz Nowy wątek
2008-03-03 19:40

Rejestracja: 12 lat temu

Ostatnio: 10 lat temu

0

hiho!
jak zrobić aby wywołać inny program już PO zakończeniu innego???

Pozostało 580 znaków

2008-03-03 20:28

Rejestracja: 15 lat temu

Ostatnio: 21 godzin temu

0

hiho!

onClose

Pozostało 580 znaków

2008-03-03 20:46

Rejestracja: 12 lat temu

Ostatnio: 10 lat temu

0

ehhh... jakby chodziło o takie rzeczy to by w forum newbie wylądowało... chodzi o wywołanie programu X spod mojego, a po zamknięciu X wywołania Y

Pozostało 580 znaków

2008-03-03 21:01

Rejestracja: 15 lat temu

Ostatnio: 21 godzin temu

0

to spod twojego programu wywolaj X i sprawdzaj okno lub proces czu X istnieje nadal a gdy zniknie wywolaj Y
tyle ze twoj program pierwotny musi byc caly czas wlaczony i sprawdzac czy X istnieje

Pozostało 580 znaków

2008-03-03 21:25

Rejestracja: 12 lat temu

Ostatnio: 10 lat temu

0

No dobra, ale jak sprawdzić po procesie???

Pozostało 580 znaków

2008-03-03 21:39

Rejestracja: 16 lat temu

Ostatnio: 10 lat temu

0
uses Windows;

var
  proc_info:  TProcessInformation;
  startinfo:  TStartupInfo;
begin

//Uruchamiamy X
ZeroMemory(@proc_info, sizeof(proc_info));
ZeroMemory(@startinfo, sizeof(startinfo));
startinfo.cb := sizeof(TStartupInfo);
if CreateProcess('X.exe', '', nil, nil, FALSE, NORMAL_PRIORITY_CLASS, nil, nil, startinfo, proc_info) then
  begin
  WaitForSingleObject(proc_info.hProcess, INFINITE);
  CloseHandle(proc_info.hThread);
  CloseHandle(proc_info.hProcess);
  end;

//Zakończony X, uruchamiamy i czekamy na Y
ZeroMemory(@proc_info, sizeof(proc_info));
ZeroMemory(@startinfo, sizeof(startinfo));
startinfo.cb := sizeof(TStartupInfo);
if CreateProcess('Y.exe', '', nil, nil, FALSE, NORMAL_PRIORITY_CLASS, nil, nil, startinfo, proc_info) then
  begin
  WaitForSingleObject(proc_info.hProcess, INFINITE);
  CloseHandle(proc_info.hThread);
  CloseHandle(proc_info.hProcess);
  end;

end.

<font color="red">Konto porzucone</span>

Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir 'Szczawik' Włodkowski

Pozostało 580 znaków

2008-03-04 09:18

Rejestracja: 14 lat temu

Ostatnio: 2 lata temu

Lokalizacja: Helsingør / FZ

0

A jak ktoś sobie zmieni nazwy "egzeków" X i Y? :>

Pozostało 580 znaków

2008-03-04 10:28

Rejestracja: 12 lat temu

Ostatnio: 10 lat temu

0

będzie działać...

Pozostało 580 znaków

2008-03-09 23:59

Rejestracja: 17 lat temu

Ostatnio: 4 lata temu

0

uruchamia program i czeka na jego zamkniecie.
jak przerobisz bedzie ok.

a co do zmiany nazwy execa - przecieŻ napisal ze chce ten program uruchomic poprzez swoj program.

procedure RunAndWait(S:String);
var SI:TStartupInfo;
    PI:TProcessInformation;
begin
 FillChar(SI,sizeof(SI),0);
 with SI do
 begin
  dwFlags:=STARTF_USESHOWWINDOW;
  wShowWindow:=SW_SHOW;
  cb:=sizeof(TStartupInfo);
 end;

 if CreateProcess(nil,PChar(S),nil,nil,FALSE,NORMAL_PRIORITY_CLASS,nil,nil,SI,PI) then
  with PI do
  begin
  application.ProcessMessages;
   WaitForInputIdle(hProcess,1000);
   WaitForSingleObject(hProcess,10000);
   WaitForSingleObject(hThread,10000);
   CloseHandle(hProcess);
   CloseHandle(hThread);
  end;
end;

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0