Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Kak zaktir Dos prilojenie. Pri WM_QUIT proisxodit zavison! [D6, Win95/98, NT4]


Delphi5.01 ©   (2002-07-26 00:12:00) 

Vso ok Desriptor naxodit no vot otrubat ne xochet
esli ukazivau WM_CLOSE to nado najimat YES ili NO nu standartnoie okoshko tipa "vi uvereni chto xotite ego otkluchit eto MS-Dos prilojenie"
A pri nije privedonnom primere, vo pervix ozu me osvobojdaetsa, vo vtorix progu zanovo nevozmojno zapustit.
Wnd:=FindWindow(nil,"g.exe");
if Wnd<>0 then
PostMessage(Wnd,WM_QUIT,0,0);


Delphi5.01   (2002-07-28 16:36:00) [1]

Bolshoie spasibo ochen pomog!


Eugene Lachinov   (2002-07-26 22:00:00) [2]

var
Wnd : HWND;
LPDWORD : Cardinal;
hProcess : THandle;
begin
Wnd := FindWindow("ConsoleWindowClass","VC.COM");
if Wnd <> 0 then Begin
GetWindowThreadProcessId(Wnd, LPDWORD);
hProcess := OpenProcess(SYNCHRONIZE or PROCESS_TERMINATE, FALSE, LPDWORD);
if hProcess <> 0 then try
TerminateProcess(hProcess, 0)
finally
CloseHandle(hProcess)
end
end


Delphi5.01   (2002-07-26 17:31:00) [3]

Da xotelosbi dobavit. Problema okazivaetsa vot v chom. Ia otkluchau progu kotoraia zavisla, nu tipa zaciklilas, nu vot pri WM_QUIT v procesore vse ravno ostaiotsa deistvie, vot pochemu proga ne zapuskaetsa posle togo kak ia ieio vikluchil WM_QUIT. No chto kasatsa drugix prog otkluchaet na 5.
Udivites naverno zachem mne zapuskak progu iesli ia znau chto ona zaciklenaia, otvet ia pishu progu kotoraia proveraet Paskal programu na testi. Vot i mojet bit sluchai s zavisaniem, ia doljen otrubit progu, i proverit na ostalnie testi (testi olimpiadnie, nu kto uchvstvoval naverneka videli takuiu progu kotoraia na servere i ti posilesh ei svoiu progu a ona testit eieo). elsi kto mojet pomogite, proekt srochni!
Spasibo!


Delphi5.01   (2002-07-26 16:37:00) [4]

esli ti imel v vidu vot eto to ono ne rabotaet.

var Wnd : HWND;
LPDWORD : Cardinal;
begin
Wnd:=FindWindow("tty","g");
if Wnd<>0 then
Begin
GetWindowThreadProcessId(Wnd,LPDWORD);
TerminateProcess(LPDWORD,WM_CLOSE);
end;
end;

mojet ia chtoto ne ponal, pojaluista obiasni


Eugene Lachinov   (2002-07-26 09:58:00) [5]

GetWindowThreadProcessId, TerminateProcess


Delphi5.01   (2002-07-26 08:50:00) [6]

Neujeli ni kogo ne interesuet!


Наверх

Титульная страница Поиск, карта сайта Написать письмо