Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2008, 01:46   #1
Djaconda
Пользователь
 
Аватар для Djaconda
 
Регистрация: 02.09.2007
Сообщений: 26
По умолчанию Удаление/закрытие процесса

запускаю ShellExecute(0,nil,"game.exe",nil,n il,SW_SHOWNORMAL);
а как его потом удалить из памяти.
Djaconda вне форума Ответить с цитированием
Старый 13.06.2008, 08:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Закрыть процесс можно через TerminateProcess, в который передается тот хендл который вернет ShellExecute
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2008, 13:11   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можешь сделать так:

Код:
function KillTask(ExeFileName: string): Integer; 
const 
  PROCESS_TERMINATE = $0001; 
var 
  ContinueLoop: BOOL; 
  FSnapshotHandle: THandle; 
  FProcessEntry32: TProcessEntry32; 
begin 
  Result := 0; 
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32); 
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); 

  while Integer(ContinueLoop) <> 0 do 
  begin 
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = 
      UpperCase(ExeFileName))) then 
      Result := Integer(TerminateProcess( 
                        OpenProcess(PROCESS_TERMINATE, 
                                    BOOL(0), 
                                    FProcessEntry32.th32ProcessID), 
                                    0)); 
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); 
  end; 
  CloseHandle(FSnapshotHandle); 
end; 



procedure TForm1.Button1Click(Sender: TObject);
begin
  KillTask('game.exe');
end;
Всегда рад помочь!

Последний раз редактировалось rpy3uH; 25.07.2008 в 21:56.
Terran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
закрытие чужого процесса Dimon Win Api 7 12.05.2010 12:01
Удаление файла из процесса Killbrum Помощь студентам 3 28.08.2008 12:38
Закрытие программы Zloy_Doomer Общие вопросы Delphi 3 23.06.2008 19:08
Странное закрытие joker Win Api 18 29.03.2008 07:45
Закрытие приложения Лёка Общие вопросы Delphi 7 09.03.2008 15:50