gzh888666 发表于 2011-2-22 14:26:18

如何根据PID隐藏进程。

本帖最后由 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=$Status Then
                        MsgBox(64,"", )
                                EndIf得到的PID,但不知道怎么操作这个$Split
下面是一个另类的隐藏进程源码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

the886 发表于 2011-2-22 14:35:14

这个方法,任务管理器,会一闪一闪的,并会丢失焦点

gzh888666 发表于 2011-2-22 14:39:17

回复 2# the886


    搜了一下论坛的帖子,关于PID操作的少的可怜,自己反复实践未果只好求助论坛大大们了,论坛大多数进程隐藏的帖子在win7里不是蓝屏就是没效果,看着这个还可以用所以翻出来了,不知道有没有好的办法!

minterz 发表于 2011-2-22 19:48:33

这个算是黑客行为了吧..

the886 发表于 2011-3-4 13:19:19

不错的方法。。。
页: [1]
查看完整版本: 如何根据PID隐藏进程。