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

> ВНИМАНИЕ!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

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


Пионер
**

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

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


Таков вопрос - как убить процесс/закрыть программу, если после нажатия Ctrl+Alt+Delete в колонке "Имя процесса" его имя, например, StreamingMediaPlayer.exe?
Собственно суть программы такова - запускается другая программа и через несколько сек. надо ее закрыть.
Об API почти ничего не знаю unsure.gif
Нашел несколько подходящих функций/процедур, но среди аргументов - типы Cardinal, Classname. Что это такое? Как найти эти данные для моего процесса?
Спасибо всем, кто откликнется wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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 23:06
klem4   Вот, делал лабу в этом семестре: // ... implemen…   12.06.2007 23:36
Vinchkovsky   А что такое frmNewProc? Из-за этого не хочет компи…   12.06.2007 23:46
volvo   Класс формы, вероятно... type frmNewProc = cla…   12.06.2007 23:52
Vinchkovsky   klem4, volvo, спасибо, разобрался. Но - как узнать…   13.06.2007 15:37
volvo   У тебя все проще: тебе ведь известно имя EXE-файла…   13.06.2007 15:54
Vinchkovsky   volvo, спасибо... Это я что-то стормозил (вчера эт…   13.06.2007 17:45
Vinchkovsky   Не совсем по теме, но - как контролировать поведен…   14.06.2007 17:37
volvo   Какого рода ошибки ты хочешь ловить? Или ты о пред…   14.06.2007 17:45
Vinchkovsky   Как я уже писал, пишу прогу для поиска свободного …   14.06.2007 18:20
volvo   Тебе сюда: Королевство Дельфи - вопрос № 26074   14.06.2007 18:22
Vinchkovsky   Спасибо... Я совсем не ориентируюсь в API, очень п…   14.06.2007 18:31
volvo   Ты можешь нормально рассказать, что происходит, ко…   14.06.2007 20:42
Vinchkovsky   Присоеденил скрин. Если есть конкретный алгоритм п…   14.06.2007 21:23
volvo   Автоматизация никогда не помешает :) Попробуй пов…   14.06.2007 21:54
Vinchkovsky   Извини за тупость, но никак не могу разобратся с э…   17.06.2007 17:23
volvo   Фактически - все три типа = LongInt (так описывают…   20.06.2007 3:03


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

 





- Текстовая версия 29.03.2024 1:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name