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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.01.2012, 11:51
Аватар для Erilar
Erilar Erilar вне форума
Новичок
 
Регистрация: 30.03.2011
Сообщения: 91
Версия Delphi: 7
Репутация: 10
Вопрос Команда закрытия программы

Есть код для убивания процесса. А как сделать чтобы процессу передавалась команда закрытия. Можно это сделать как-нибудь без FindWindows?
__________________
Если программа даёт неверный результат - в ней ошибка. Если же результат правильный - ошибок, как минимум, две.
Ответить с цитированием
  #2  
Старый 15.01.2012, 12:12
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

PostThreadMessage(idThread, WM_QUIT, 0, 0);
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 15.01.2012, 13:14
Аватар для Erilar
Erilar Erilar вне форума
Новичок
 
Регистрация: 30.03.2011
Сообщения: 91
Версия Delphi: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
PostThreadMessage(idThread, WM_QUIT, 0, 0);
Можно подробней? Мне нужно закрыть "proces.exe". Как это будет выглядеть в коде?
__________________
Если программа даёт неверный результат - в ней ошибка. Если же результат правильный - ошибок, как минимум, две.
Ответить с цитированием
  #4  
Старый 15.01.2012, 13:45
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

вот это возвращает processid, как получить threadid не помню, ищи гугл
PHP код:
uses TLHelp32;

function 
PID(ExeNamestring): Cardinal;
var
  
FSnapshotHandleTHandle;
  
FProcessEntry32TProcessEntry32;
  
ContinueLoopBoolean;
begin
  result 
:= invalid_handle_value;
  
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
  
Process32First(FSnapshotHandle,FProcessEntry32);
  
repeat
    
if pos(uppercase(ExeName), uppercase(ExtractFileName(FProcessEntry32.szExeFile))) = 1 then
    begin
      result 
:= FProcessEntry32.th32ProcessID;
      exit;
    
end;

    
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
  
until not ContinueLoop;
  
CloseHandle(FSnapshotHandle);
end
Ответить с цитированием
  #5  
Старый 15.01.2012, 14:03
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну так так же, только CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter