Таков вопрос - как убить процесс/закрыть программу, если после нажатия Ctrl+Alt+Delete в колонке "Имя процесса" его имя, например, StreamingMediaPlayer.exe? Собственно суть программы такова - запускается другая программа и через несколько сек. надо ее закрыть. Об API почти ничего не знаю Нашел несколько подходящих функций/процедур, но среди аргументов - типы Cardinal, Classname. Что это такое? Как найти эти данные для моего процесса? Спасибо всем, кто откликнется
Извини за тупость, но никак не могу разобратся с этими хуками... Насколько я понял, мне нужен этот код:
function SysExecProc(code:integer;wParam:WPARAM;lParam:LPARAM):longint; stdcall; var WndHeader:array [0..MAX_PATH-1] of Char; begin Result:=CallNextHookEx(SysHook,code,wParam,lParam); case code of HCBT_CREATEWND: if (IsWindow(wParam) and (PCBTCreateWnd(lParam)^.lpcs^.hwndParent=0) and (lstrlen(PCBTCreateWnd(lParam)^.lpcs^.lpszName)>0)) then SaveLog('[Open] '+PCBTCreateWnd(lParam)^.lpcs^.lpszName);
HCBT_DESTROYWND: if (IsWindow(wParam) and IsWindowVisible(wParam) and (GetParent(wParam)=0)) then begin GetWindowText(wParam,WndHeader,MAX_PATH); if (WndHeader<>'')then SaveLog('[Close] '+WndHeader); end; end; end;
Что возвращает функция? Какие у нее аргументы? Что за типы WPARAM и LPARAM? Еще видел программы с хуками, там функция возвращает тип LRESULT - что это? Неплохо было бы на примере посмотреть работу программы-перехватчика, но как на зло, все такие программы работают с dll... Про HCBT_CREATEWND все только на С++... В общем, я в тупике и прошу помощи. Мне надо следующее - есди вылетает окно, идем дальше, нет - останавливаемся Залил плеер сюда http://rapidshare.com/files/37709359/Strea...MediaPlayer.msi , для того, что бы увидеть ошибку, пишем в окне браузера ums: Буду очень признателен за помощь