Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.11.2011, 17:03
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию завершить программу зная имя процесса

здраствуйте.по сабжу поиском нашел много но всё не то...
я так понял мне надо узнать хендл процесса и послать команду завершения.
почти везде примеры идут с поиском по имени окна программы,а нужная мне прога сидит в трее,окна нет,только имя процесса.
на одном сайте нашел почти то что надо.но данный пример просто берет и завершает процесс (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;
Ответить с цитированием
  #2  
Старый 06.11.2011, 17:25
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

если в программе нет окна как в ней можно нажать "выход"?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 06.11.2011, 17:35
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

в трее значок есть на нём пкм-выход,и еще если на значок нажать то окно появляется
Ответить с цитированием
  #4  
Старый 06.11.2011, 20:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если в трее есть значок, то значит есть и окно. Просто ты его не видишь.
Ответить с цитированием
  #5  
Старый 06.11.2011, 20:54
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

ладно.но неужто нельзя переделать выше написанный код чтоб вместо terminate какой нибудь Close был?
Ответить с цитированием
  #6  
Старый 06.11.2011, 21:11
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Вместо TerminateProcess пошли сообщение окну WM_CLOSE например.
__________________
Помогаю за Спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:25.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025