Что нового

завершение процессов, не входящих в массив

VladUs

Скриптер
Сообщения
621
Репутация
181
скрипт нужен был для убивания всякой гадости (~20 процессов)
.
Если просто убивать лишние процессы которые не нужны, при определенных обстоятельствах, то может сам метод и правельный. Но в случае с вирусами и др. нечестью это может не помочь т.к имя процесса может совпадать с системным. Я сам иногда, для того чтобы у пользователя не возникали лишние вопросы даю своим скриптам имена системных процессов... допустим svchost.exe.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
VladUs [?]
Я сам иногда, для того чтобы у пользователя не возникали лишние вопросы даю своим скриптам имена системных процессов... допустим svchost.exe.
Код:
#include <WinAPIEx.au3>

$sProcess = 'svchost.exe'
$iPID = ProcessExists($sProcess)
If Not $iPID Then
	MsgBox(64, 'Info', 'Нет процесса')
	Exit
EndIf
$sPath = _WinAPI_GetProcessFileName($iPID)
If Not @error Then
	MsgBox(64, 'Info', $sPath)
	;только папку открыть:
	;$sPath = StringRegExpReplace($sPath, '\\[^\\]*$', '')
	;ShellExecute($sPath)
	;открыть папку и выделить файл:
	;Run('Explorer.exe /select,"' & $sPath & '"')
Else
	MsgBox(16, 'Error', 'Error')
EndIf
И еще
Код:
#include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)
Opt('TrayMenuMode', 1)

Global $aProcess, $sFile, $j = 0, $aAutoIt[$j + 1], $sTitle = 'Поиск процессов AutoIt', _
		$sMessage = 'Нет ни одного процесса AutoIt.'

If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)

$aProcess = ProcessList()

If Not @error Then
	For $i = 1 To $aProcess[0][0]
		$sFile = _WinAPI_GetProcessFileName($aProcess[$i][1])
		If _FileIsAutoItScript($sFile) And $sFile <> @ScriptFullPath Then
			$j += 1
			ReDim $aAutoIt[$j + 1]
			$aAutoIt[$j] = $sFile
		EndIf
	Next
	If $j Then
		$sMessage = 'Найдено процессов AutoIt: ' & $j & @CRLF & @CRLF
		For $n = 1 To $j
			$sMessage &= $aAutoIt[$n] & @CRLF
		Next
	EndIf
	MsgBox(64, $sTitle, $sMessage)
Else
	MsgBox(16, $sTitle, 'Ошибка.')
EndIf

Func _FileIsAutoItScript($sExeFile)
	Local $sSignature = BinaryToString('0xA3484BBE986C4AA9994C530A86D6487D')
	Local $sRead = FileRead($sExeFile)
	Return StringInStr($sRead, $sSignature) > 0
EndFunc   ;==>_FileIsAutoItScript
WinAPIEx.au3.
Источник
 
Автор
A

antidog

Новичок
Сообщения
26
Репутация
2
Всё убирается из автозагрузки, попробуй AnVir Task Manager и прочти статью.
поргу пробовал давно, не помогла, а вот статью прочту - попробую
 
Верх