maya2016 bifrost教程:怎么能让自己编的程序在任务管理器进程中不可见?

来源:百度文库 编辑:高考问答 时间:2024/05/05 00:42:32
能在VB中实现吗?代码是什么?各位大虾见教。。。
大虾们,是进程不见。真好使有追分(略表心意而已。。。)

VB中实现方法:
将程序从任务列表中隐藏
将你的程序从Windows的系统任务列表中隐藏(即CTRL+ALT+DEL出来的框)

'复制以下代码到一模块中

Declarations
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Declare Function GetCurrentProcess Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0

'下面代码为隐藏
Public Sub MakeMeService()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub

'恢复隐藏
Public UnMakeMeService()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
End Sub

Windows应用程序是一定会出现在任务管理器中的
但是如果做成Windows服务就可以不出现了,不过调试起来超级麻烦,劝楼主放弃吧。
而且运行服务的机制也与应用程序有一些区别,不知楼主到底想实现什么功能,不会有什么特别的用途吧......哈哈

如果是在9x下的话,lylbin提供的方法是可以的。如果是在NT/2k/xp...下的话就需要通过hook了。原理比较简单,但是代码太长了。这里不说了。