· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Как завершить процесс?

Посл.отвђт Сообщенiе


Дата: Сен 11, 2003 21:30:27

Доброе время суток!
Возник вопрос: как завершить процесс (в том
числе и системный)? В частности, нужно завершить
Explorer.exe, чтобы передать управление другой
программе.
(Для любого Windows.)
Пожалуйста, приведите исходный код.
Заранее благодарен!
1990.


Дата: Сен 11, 2003 21:42:38

TerminateProcess, но explorer трогать нельзя, с этого ничего
хорошего не получится!


Дата: Сен 12, 2003 09:40:28

Не обязательно Explorer. TerminateProcess - я не знаю как использовать функцию. Судя по ICZTUTES - надо вначале создать процесс? Простите за безграмотность!
1990


Дата: Сен 12, 2003 10:40:26 · Поправил: Four-F

[ 1990: как завершить процесс (в том числе и системный)? ]

Если у процесса есть окно, то сначала можно попробовать послать ему WM_QUIT.
Если не получается, то TerminateProcess. Вот оба примера - в качестве жертвы калькулятор.
; Заставляем процесс завершиться корректно
.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib

.data
szTargetClassName db "SciCalc", 0

.code
start:
	invoke FindWindow, addr  szTargetClassName, NULL
	push eax
	invoke GetWindowThreadProcessId, eax, esp
	invoke PostThreadMessage, eax, WM_QUIT, 0, 0
	pop eax
	ret 
end start

; Если сопротивляется убиваем ;-)
.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

.data
szTargetClassName db "SciCalc", 0

.code
start:
	invoke FindWindow, addr  szTargetClassName, NULL
	push eax
	invoke GetWindowThreadProcessId, eax, esp
	pop eax
	invoke OpenProcess, PROCESS_TERMINATE, FALSE, eax
	push eax				; CloseHandle
	invoke TerminateProcess, eax, 0
	call CloseHandle
	ret
end start


PS: Explorer не системный, а обычный процесс, такой же как калькулятор или блокнот.


Дата: Сен 12, 2003 11:09:09

Four-F

Огромное спасибо! Вы мне очень помогли!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.033