IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Убить процесс / закрыть программу
Vinchkovsky
сообщение 12.06.2007 19:06
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 98
Пол: Мужской
Реальное имя: Andriy

Репутация: -  0  +


Таков вопрос - как убить процесс/закрыть программу, если после нажатия Ctrl+Alt+Delete в колонке "Имя процесса" его имя, например, StreamingMediaPlayer.exe?
Собственно суть программы такова - запускается другая программа и через несколько сек. надо ее закрыть.
Об API почти ничего не знаю unsure.gif
Нашел несколько подходящих функций/процедур, но среди аргументов - типы Cardinal, Classname. Что это такое? Как найти эти данные для моего процесса?
Спасибо всем, кто откликнется wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 12.06.2007 19:36
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Вот, делал лабу в этом семестре:


// ...
implementation
var
lpStartUpInfo: TStartUpInfo;
ProcessInformation: TProcessInformation;


{$R *.dfm}

function _OpenProcess: Boolean;
begin
RESULT := TRUE;

if frmNewProc.OpenDialog1.Execute then begin

FillChar(lpStartUpInfo, SizeOf(lpStartUpInfo), #0);
lpStartUpInfo.cb := SizeOf(lpStartUpInfo);
lpStartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
lpStartUpInfo.wShowWindow := SW_SHOWNORMAL;

try

if CreateProcess(nil,PChar(frmNewProc.OpenDialog1.FileName),
nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
nil, nil, lpStartUpInfo, ProcessInformation) then begin
end else begin
MessageDlg('Выбранный файл "' + frmNewProc.OpenDialog1.FileName+ '" не является приложением Win32',
mtInformation, [mbOk], 0);

RESULT := FALSE;
end;

//if WaitForSingleObject(ProcessInformation.hProcess, 10000) = WAIT_TIMEOUT then
//RESULT := FALSE;

except on E: Exception do begin
MessageDlg('Невозможно запустить процесс: ' + E.Message,
mtError, [mbCancel], 0);

RESULT := FALSE;
end;
end;
end else RESULT := FALSE;
end;

function CloseProcess: Boolean;
begin
RESULT := TRUE;
try
TerminateProcess(ProcessInformation.hProcess, 0);
CloseHandle(ProcessInformation.hProcess);
CloseHandle(ProcessInformation.hThread);
except on E: Exception do begin
MessageDlg('Невозможно завершить процесс "' + frmNewProc.OpenDialog1.FileName + '" : ',
mtWarning, [mbOk], 0);
RESULT := FALSE;
end;
end;
end;

//...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Vinchkovsky   Убить процесс / закрыть программу   12.06.2007 19:06
klem4   Вот, делал лабу в этом семестре: // ... implemen...   12.06.2007 19:36
Vinchkovsky   А что такое frmNewProc? Из-за этого не хочет компи...   12.06.2007 19:46
volvo   Класс формы, вероятно... type frmNewProc = cla...   12.06.2007 19:52
Vinchkovsky   klem4, volvo, спасибо, разобрался. Но - как узнать...   13.06.2007 11:37
volvo   У тебя все проще: тебе ведь известно имя EXE-файла...   13.06.2007 11:54
Vinchkovsky   volvo, спасибо... Это я что-то стормозил (вчера эт...   13.06.2007 13:45
Vinchkovsky   Не совсем по теме, но - как контролировать поведен...   14.06.2007 13:37
volvo   Какого рода ошибки ты хочешь ловить? Или ты о пред...   14.06.2007 13:45
Vinchkovsky   Как я уже писал, пишу прогу для поиска свободного ...   14.06.2007 14:20
volvo   Тебе сюда: Королевство Дельфи - вопрос № 26074   14.06.2007 14:22
Vinchkovsky   Спасибо... Я совсем не ориентируюсь в API, очень п...   14.06.2007 14:31
volvo   Ты можешь нормально рассказать, что происходит, ко...   14.06.2007 16:42
Vinchkovsky   Присоеденил скрин. Если есть конкретный алгоритм п...   14.06.2007 17:23
volvo   Автоматизация никогда не помешает :) Попробуй пов...   14.06.2007 17:54
Vinchkovsky   Извини за тупость, но никак не могу разобратся с э...   17.06.2007 13:23
volvo   Фактически - все три типа = LongInt (так описывают...   19.06.2007 23:03


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 13.07.2025 18:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"