本帖最后由 gzh888666 于 2011-2-22 14:45 编辑
下面这段代码可以根据进程名隐藏,不好的地方就是进程名相同的话也全隐藏了,能不能根据PID隐藏进程呢?加个想法,能不能根据PID隐藏托盘图标,我是根据ProcessList()的返回得到的PID
在ListView中使用 $a = _GUICtrlListView_GetSelectedIndices($nListView)
$b = _GUICtrlListView_GetItemTextString($nListView, Number($a))
$Split = StringSplit($b, "|")
If $Split[4]=$Status[0] Then
MsgBox(64,"", )
EndIf
得到的PID,但不知道怎么操作这个$Split[2]
下面是一个另类的隐藏进程源码Opt("WinTitleMatchMode", 3)
Opt("MustDeclareVars", 1)
HotKeySet("{ESC}", "Stop")
Dim $sProcessName, $iProcessIndex, $h_listview
Global Const $LVM_DELETEITEM = 0x1008
If Not (WinExists("Windows 任务管理器")) Then
Run(@SystemDir & "\taskmgr.exe", @SystemDir)
WinWait("Windows 任务管理器")
WinSetOnTop("Windows 任务管理器", "", 0)
EndIf
$sProcessName = InputBox("隐藏进程", "请输入你想在任务管理器里隐藏的完整进程名称:")
While 1
If $sProcessName <> 1 Then
$iProcessIndex = ControlListView("Windows 任务管理器", "", 1009, "FindItem", $sProcessName)
If $iProcessIndex = -1 Then
Sleep(1)
Else
$h_listview = ControlGetHandle("Windows 任务管理器", "", 1009)
DllCall("user32.dll", "int", "SendMessage", "hwnd", $h_listview, "int", $LVM_DELETEITEM, "int", $iProcessIndex, "int", 0)
EndIf
EndIf
WEnd
Func Stop()
Exit
EndFunc ;==>Stop
|