![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() здраствуйте.по сабжу поиском нашел много но всё не то...
я так понял мне надо узнать хендл процесса и послать команду завершения. почти везде примеры идут с поиском по имени окна программы,а нужная мне прога сидит в трее,окна нет,только имя процесса. на одном сайте нашел почти то что надо.но данный пример просто берет и завершает процесс (terminate) а мне надо както послать такую команду,как будто в программе нажали "выход".чтоб результат работы программы сохранился перед закрытием. вот пример,может както поможете изменить его чутка? Код:
uses Tlhelp32; ... function KillTask(ExeFileName:string):integer; const PROCESS_TERMINATE=$0001; var Co:BOOL; FS:THandle; FP:TProcessEntry32; begin result:=0; FS:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); FP.dwSize:=Sizeof(FP); Co:=Process32First(FS,FP); while integer(Co) <> 0 do begin if ((UpperCase(ExtractFileName(FP.szExeFile))=UpperCase(ExeFileName)) or (UpperCase(FP.szExeFile)=UpperCase(ExeFileName))) then Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0), FP.th32ProcessID),0)); Co:=Process32Next(FS,FP); end; CloseHandle(FS); end; |