Работа с чужими процессами
Данная функция позволяет завершить выполнение любой активной программы по её classname или заголовку окна.
Code: |
procedure KillProgram(Classname : string; WindowTitle : string); const PROCESS_TERMINATE = $0001; var ProcessHandle : THandle; ProcessID: Integer; TheWindow : HWND; begin TheWindow := FindWindow(Classname, WindowTitle); GetWindowThreadProcessID(TheWindow, @ProcessID); ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId); TerminateProcess(ProcessHandle,4); end; |
- Подробности
- Родительская категория: Windows
- Категория: Работа с чужими процессами
Пример использования:
Code: |
// После этого можно смотреть информация о таких системных модулях как: //winlogon.exe и servises.exe и д.р. EnableDebugPrivilege(True); // вкрючить
EnableDebugPrivilege(False); // выключить |
- Подробности
- Родительская категория: Windows
- Категория: Работа с чужими процессами
Вам потребуется OpenDialog для открытия ехе-файлов и Memo для показа информации о файле.
- Подробности
- Родительская категория: Windows
- Категория: Работа с чужими процессами
Code: |
Function SendString(TargetWnd, SourceWnd: THandle; N: Integer; Const S: String): Integer; Var CD: TCopyDataStruct; Begin CD.dwData := N; CD.cbData := Length(S); If CD.cbData = 0 Then CD.lpData := NIL Else CD.lpData := @S[1]; Result := SendMessage(TargetWnd, WM_COPYDATA, SourceWnd, Integer(@CD)); End; ... Procedure WMCopyData(Var Msg: TWMCopyData); Message WM_COPYDATA; ... Procedure TForm1.WMCopyData(var Msg: TWMCopyData); Var { Строка } S: String; { Число } N: Integer; Begin If (Msg.CopyDataStruct^).lpData = NIL Then S := ''; SetLength(S,Msg.CopyDataStruct^.cbData); S := String((Msg.CopyDataStruct^).lpData); N := (Msg.CopyDataStruct^).dwData; End; |
Автор: Rrader
- Подробности
- Родительская категория: Windows
- Категория: Работа с чужими процессами
Страница 4 из 4