Forum Delphi.cz

Delphi => Obecné => Téma založeno: age.new 06-11-2019, 10:54:15

Název: Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: age.new 06-11-2019, 10:54:15
Dobrý den,
mohl bych se prosím zeptat, zda má někdo zkušenost s voláním aplikace přes CreateProcess? V Delphi aplikaci volám jinou aplikaci a potřebuji počkat na její zavření (pro zpracování dat které se mezitím vygenerují). Jenže občas (1x za 100 spuštění) zamrznou Windows 7 s tím, že hlavní aplikace přestala odpovídat a jediná možnost je vše zavřít přes task manager. U Windows XP se nám to nikdy nestalo, pouze u Windows 7. Níže je kód:

 
Kód: Delphi [Vybrat]
  1.    
  2. var
  3.   proc_info: TProcessInformation;
  4.   startinfo: TStartupInfo;
  5.   ExitCode: longword;
  6. begin
  7.   FillChar(proc_info, sizeof(TProcessInformation), 0);
  8.   FillChar(startinfo, sizeof(TStartupInfo), 0);
  9.   startinfo.cb := sizeof(TStartupInfo);
  10.   StartInfo.dwFlags := STARTF_USESHOWWINDOW;
  11.   startinfo.wShowWindow := SW_HIDE;
  12.   if CreateProcess(nil, PChar(strFQN), nil, nil,False, CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS, nil, nil,                      
  13.   StartInfo, Proc_Info) <> False then
  14.   begin
  15.     WaitForSingleObject(proc_info.hProcess, INFINITE);
  16.     GetExitCodeProcess(proc_info.hProcess, ExitCode);
  17.     CloseHandle(proc_info.hThread);
  18.     CloseHandle(proc_info.hProcess);
  19.   end;
  20. end;
  21.  

Nějaká nápad co by s tím šlo udělat?

Děkuji!
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: pf1957 06-11-2019, 14:05:03
mohl bych se prosím zeptat, zda má někdo zkušenost s voláním aplikace přes CreateProcess? V Delphi aplikaci volám jinou aplikaci a potřebuji počkat na její zavření (pro zpracování dat které se mezitím vygenerují).

Vyzkousej JclMiscel.WinExec32AndWait() ev. se tam muzes inspirovat/porovnat, co je tam jinak.
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: Marek Weyda 06-11-2019, 14:37:18
A ve Windows event logu je něco použitelného nebo ne ? Podíval bych se tam. Mě to občas i navede na správnou cestu. Pak si také nejsem jistý u toho CloseHandle jestli to není lepší udělat v obráceném pořadí, ale je to asi jedno.
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: starous 06-11-2019, 19:04:51

Vyzkousej JclMiscel.WinExec32AndWait() ev. se tam muzes inspirovat/porovnat, co je tam jinak.

Také používám, použití je jednoduché. Je to knihovna JCL, stáhnout se dá přímo přes GetIt Package Manager.
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: age.new 07-11-2019, 12:57:47
Děkuji za rady. V JCL vypadá funkce WinExec32AndWait prakticky stejně a patrně zde problém nebude. Je zajímavé, že se problém objevil až teď po nasazení na Windows 7. U XP to běhá roky bez problémů a na Win 7 se chyba objevila 2x za den.
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: pf1957 07-11-2019, 17:16:24
U XP to běhá roky bez problémů a na Win 7 se chyba objevila 2x za den.
XP nemely UAC... Je ta tvoje spoustena aplikace radne vychovanou wokenni aplikaci?
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: Marek Weyda 08-11-2019, 08:42:54
Ještě bych opravdu prověřil ten Windows event log, jak jsem psal. Nedávno jsem řešil zatuhnutí aplikace, jak se popisuje v této diskuzi, nebyla ale volána z jiného programu. Nicméně z toho Windows event logu jsem vyčetl, že 2 minuty před selháním aplikace jim na síti selhalo TCP/IP spojení. Zatuhlo to dost podobně - muselo se to sestřelit přes Správce úloh. Neběží to právě v nějakém prostředí, kde selhává síťové připojení ? Prověřil bych v tom Windows event logu, co se dělo v čase, kdy aplikace selhala a také, co se dělo předtím a to hlášení od různých aplikací, nejenom pro tu, co selhala. Snadno se to tam dá vyfiltrovat.
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: age.new 08-11-2019, 09:37:59
Citace
XP nemely UAC... Je ta tvoje spoustena aplikace radne vychovanou wokenni aplikaci?

Co si mám pod tím představit?
Název: Re:Hláška aplikace neodpovídá při použití CreateProcess
Přispěvatel: Stanislav Hruška 08-11-2019, 14:49:15
Ja som presvedčený, že má na mysli tieto dve veci: