VB如何防止关机啊

我想的是写一句:Shell"shutdown-a"可是不行... 我想的是写一句:Shell "shutdown -a"
可是不行
展开
 我来答
hmlky
2011-04-27 · TA获得超过1369个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:364万
展开全部
正如楼上所说,Windows是调用ExitWindowsEx来
关闭的,你要防止关机,就要将ExitWindowsEx挂钩,
也就是HOOK。系统关机是这样的:
系统收到关机按钮的消息 -> 调用ExitWindowsEx。
HOOK,将ExitWindowsEx的地址替换成你的。
关机消息 -> 你的关机函数 ->调用真正的ExitWindowsEx。
这样你就可以选择是否去调用真正的ExitWindowsEx
来实现拦截系统关机。
HOOK API 函数一般用VC++来写,用VB实现有点难,
还涉及到了汇编,而且HOOK代码要求稳定性高,
一点点错误就可能造成不可预料的后果,我用过
SetWindowsHookEx写过低级键盘HOOK,死机了
好几次才调试好。

有一个思路,如果你真要用VB来写,
可以把VC++调试好的代码,按F10调试运行,
查看内存,将机器码拷贝出来,用VB调用,
也就是VB内嵌汇编,VB的内嵌汇编调用思路
为CallWindowProc函数,在汇编码的前面将
参数用pop弹出栈,最后加ret实现返回。

小弟技术浅,目前还不会HOOK API
具体代码你可以上网找找。
比如 防杀的 HOOK OpenProcess 等。

能帮的我只有这么多了,还请楼主好好学习,
天天向上。
帅花原鼻1N
2011-04-24 · TA获得超过2065个赞
知道小有建树答主
回答量:1476
采纳率:33%
帮助的人:814万
展开全部
shell "shutdown -r" 是运行命令行 dos下这也是一条命令 是关机的
而ExitWindowsEx是api函数 就是封装的系统函数 根据名字可以看出 它是关闭windows操作系统的 效果类似
哈 希望能帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式