|
OPEN SOURCE PROJECT
Завершение процесса
| |
andXrei | Дата: Пятница, 17.04.2009, 14:32 | Сообщение # 1 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| Как можно завершить принудительно процесс?? есть такие Api функции??
|
|
| |
fasm | Дата: Пятница, 17.04.2009, 19:10 | Сообщение # 2 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| Code Function getProcessId(Exename:string):Dword; var snap:DWORD; pe:TprocessEntry32; begin result:=0; snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if snap <>INVALID_HANDLE_VALUE then begin pe.dwSize:=sizeof(TPROCESSENTRY32); if process32First(snap,pe) then repeat if pe.szExeFile=exename then begin result:=pe.th32ProcessID; closehandle(snap); exit; end; until not process32Next(snap,pe); closehandle(snap); result:=0; end; end;
function TerminateProcess(id:integer):boolean; var hprocess:Thandle; begin hprocess:=OpenProcess(PROCESS_TERMINATE,false,id); if (hprocess=0) then begin result:=false; exit; end; result:=windows.TerminateProcess(hprocess,0); closehandle(hprocess); if not result then exit; result:=True; end; Сможешь перевести на fasm?
|
|
| |
andXrei | Дата: Пятница, 17.04.2009, 21:50 | Сообщение # 3 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| Quote (fasm) Сможешь перевести на fasm? ПопробуюДобавлено (17.04.2009, 21:47) --------------------------------------------- Доступно только для пользователей
Добавлено (17.04.2009, 21:50) --------------------------------------------- А так можно Этот исходник у меня что то не работает! Проверте мож что нибудь упустил или не так написал??
|
|
| |
At0m | Дата: Пятница, 17.04.2009, 23:02 | Сообщение # 4 |
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
| Quote invoke GetModuleHandle,lpModuleName,0 invoke SendMessage,eax,WM_CLOSE,0,0 Если хочешь закрыть окно, то тебе нужен хэндл этого окна, а не модуля. Получить его можно через FindWindow. Code include 'win32ax.inc' ;пример для MINIPAD .data pWinName db 'MiniPad',0 ;заголовок окна ;pClassName db 'MINIPAD32',0 ;класс окна
.code start: invoke FindWindow,0,pWinName invoke SendMessage,eax,WM_CLOSE,0,0 invoke ExitProcess,0 .end start
Сообщение отредактировал At0m - Пятница, 17.04.2009, 23:03 |
|
| |
fasm | Дата: Суббота, 18.04.2009, 10:44 | Сообщение # 5 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| Функция GetModuleHandle извлекает дескриптор указанного модуля, если файл был отображен в адресном пространстве вызывающего процесса. Т.е. хендлы dll и т.п. чего подгружает своя программа... Вот что у меня получилось: Code include '%fasminc%\win32ax.inc'
struct PROCESSENTRY32 dwSize dd ? cntUsage dd ? th32ProcessID dd ? th32DefaultHeapID dd ? th32ModuleID dd ? cntThreads dd ? th32ParentProcessID dd ? pcPriClassBase dd ? dwFlags dd ? szExeFile dd ? th32MemoryBase dd ? th32AccessKey dd ? ends
TH32CS_SNAPHEAPLIST = $00000001; TH32CS_SNAPPROCESS = $00000002; TH32CS_SNAPTHREAD = $00000004; TH32CS_SNAPMODULE = $00000008; TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST or TH32CS_SNAPPROCESS or TH32CS_SNAPTHREAD or TH32CS_SNAPMODULE; TH32CS_INHERIT = $80000000;
.data szFileExe db 'Notepad.exe'
.code
start: stdcall GetProcessId, szFileExe or eax, eax jz close stdcall TerminateApplication, eax close: invoke ExitProcess,0
proc GetProcessId, FileName locals snap dd ? pe PROCESSENTRY32 endl int3 mov [pe.dwSize], sizeof.PROCESSENTRY32
invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, 0 mov [snap], eax inc eax or eax, eax je .error_snap
lea esi, [pe] invoke Process32First, [snap], esi or eax, eax jz .error_snap
.loop_find: lea esi, [pe] invoke Process32Next, [snap], esi or eax, eax jz .error_snap invoke lstrcmp, [pe.szExeFile], [FileName] or eax, eax je .end_find .end_find: invoke CloseHandle, [snap] mov eax, [pe.th32ProcessID] ret .error_snap: xor eax, eax ret endp
proc TerminateApplication, id local hprocess:DWORD
invoke OpenProcess, PROCESS_TERMINATE, FALSE, [id] ; mov [hprocess], eax invoke TerminateProcess, eax, 0 ret endp
|
|
| |
andXrei | Дата: Понедельник, 20.04.2009, 14:09 | Сообщение # 6 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| А как можно получить хэндл дочерного окна??
|
|
| |
fasm | Дата: Понедельник, 20.04.2009, 18:17 | Сообщение # 7 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| http://social.msdn.microsoft.com/Search....20&ac=8
|
|
| |
|