|
发表于 2023-3-27 15:14:44
|
显示全部楼层
天津市天津市
防止“任务管理器”结束进程,可以在程序中监听系统消息 WM_CLOSE 和 WM_QUERYENDSESSION,防止关闭消息的发送。同时,可以在程序运行时创建一个进程保护程序,对主程序进行监视和保护,一旦主程序被关闭,进程保护程序就会重新启动主程序,确保主程序的持续运行。
以下是示例代码,可以实现上述功能:
e
Copy code
.版本 2
' 导入系统库
.使用命名空间 "System.Windows.Forms"
' 定义全局变量
全局变量
程序互斥体 = System.Threading.Mutex("MyProgram")
进程保护程序路径 = "C:\Program Files\MyProgram\ProcessProtector.exe"
主程序路径 = "C:\Program Files\MyProgram\MyProgram.exe"
主程序进程名 = "MyProgram.exe"
进程保护程序进程名 = "ProcessProtector.exe"
进程保护程序启动参数 = "-watch MyProgram.exe"
' 创建进程保护程序
进程保护程序 = New System.Diagnostics.Process
进程保护程序.StartInfo.FileName = 进程保护程序路径
进程保护程序.StartInfo.Arguments = 进程保护程序启动参数
进程保护程序.Start()
' 监听系统消息
监听系统消息(Wnd, Msg, wParam, lParam)
选择 Msg
情况 WM_CLOSE:
' 禁止关闭窗口
返回 1
情况 WM_QUERYENDSESSION:
' 禁止关闭程序
返回 0
结束选择
' 调用默认消息处理函数
返回 DefWindowProc(Wnd, Msg, wParam, lParam)
' 启动主程序
主程序 = New System.Diagnostics.Process
主程序.StartInfo.FileName = 主程序路径
主程序.Start()
' 进入消息循环
应用程序.运行()
需要注意的是,这只是一个简单的示例代码,实际上还需要考虑更多因素,例如程序的启动方式、运行环境等。为了实现更好的程序保护,建议使用专业的安全框架或工具。 |
|