VC++锁屏程序遇到的问题(续)

    终于调试完成,已支持XP和Win7,这个小程序中间出现了若干问题,慢慢道来。

HOOK实现的各个按键的加锁。

刚开始桌面,任务栏直接用的隐藏(SW_HIDE),但是出现的问题是,锁屏之后这些的确都消失了,但是当双击屏幕上的区域是,有时开始菜单会自动弹出。

百思不得其解,猜测开始菜单是任务管理器上的一个Button,可能是钩子函数部分功能导致的该问题。

解决办法:结束:explorer.exe

方法一:

TerminateProcess(id, 1);

该方法出现问题,网上查了很多资料,通过这样的方式结束explorer.exe系统会自动再开启这个Shell进程。

需要在注册表中将

"Software\\Microsoft\\Windows\ NT\\CurrentVersion\\Winlogon"

子项中的AutoRestartShell设置为 0

也有的说将注册表该位置的Shell子项中的值指向任意一个不是explorer.exe的内容(若指向别的值,PC重启之后会因为找不到Shell指向的内容而出现加载不了explorer.exe)

该方法在Win7下应该是可以的,但是在XP下还是不可以。


方法二:

system("taskkill /im explorer.exe /f"); //结束explorer.exe

system("start explorer.exe"); //打开explorer.exe

通过该命令结束explorer.exe命令可以实现结束explorer.exe的效果。


方法三:

"Software\\Microsoft\\Windows\ NT\\CurrentVersion\\Winlogon"

将该注册表项下的Shell子项指向你的应用程序,则,在开机的时候,则会出现你的程序即为默认的Shell加载程序。

所以explorer.exe相当于被禁掉了,开启不了了。


上面就是在结束explorer.exe时遇到的问题和相应的解决方法。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值