找回密码
 加入
搜索
查看: 2380|回复: 7

如何让注册表屏蔽WIN键即时生效

[复制链接]
发表于 2009-9-5 12:02:20 | 显示全部楼层 |阅读模式
本帖最后由 jackass110 于 2010-1-29 01:08 编辑

网吧系统,装完万象后出现如按m键执行的是win+m,做了这个屏蔽的工具,但是网吧有还原,取消还原的话比较麻烦,请教高人有没有办法不重启而即时生效,
另希望帮忙减下代码。。

不胜感激
#include <ACN_MISC.au3>

If $CmdLine[0] = 0 Then
        MsgBox(0, "", "请加参数运行")
ElseIf $CmdLine[1] = "/off" Then
        disablewin()
ElseIf $CmdLine[1] = "/on" Then
        Enablewin()
EndIf


Func Enablewin()
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout", "Scancode Map", "REG_BINARY", "0x00000000000000000300000000005be000005ce000000000")
        _RefreshIcon()
EndFunc   ;==>Enablewin

Func disablewin()
        RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout", "Scancode Map")
        _RefreshIcon()
EndFunc   ;==>disablewin
测试 _RefreshIcon()  无效
发表于 2009-9-5 17:12:06 | 显示全部楼层
刷新注册表可能会有效.
发表于 2009-9-5 17:15:49 | 显示全部楼层
Func 函数名称 ( [Const] [ByRef] $参数1, ..., [Const] [ByRef] $参数N, $可选1 = 值, ...)
    ...
    [Return [值]]
EndFunc
'_refreshicon()
你有定义这个函数吗?

注册表不重启生效你可以试下
$Return=DllCall"user32.dll","int","SendMessageTimeout","hwnd",65535,"int",26,"int",0,"int",0,"int",0,"int",1000,"str","dwResult")
 楼主| 发表于 2009-9-5 23:48:44 | 显示全部楼层
本帖最后由 jackass110 于 2009-9-6 00:02 编辑
Func 函数名称 ( [Const]  $参数1, ..., [Const]  $参数N, $可选1 = 值, ...)
    ...
    [Return [值]]
EndFunc
'_refreshicon()
你有定义这个函数吗?

注册表不重启生效你可以试下
$Return=DllCall"user ...
chengjinn 发表于 2009-9-5 17:15


_refreshicon()  包含在#include <ACN_MISC.au3>中,楼上测试无效,。。。。

系统注销后会生效,怎么“假注销”呢?

DllCAll("Userenv.dll","int","RefreshPolicyEx","int",1,"int",1) (http://www.autoitx.com/forum.php ... hlight=%CB%A2%D0%C2) 也无效
发表于 2009-9-6 02:40:32 | 显示全部楼层
本帖最后由 afan 于 2009-9-6 03:15 编辑

试了几种方法均无效...
发表于 2010-3-4 14:47:34 | 显示全部楼层
我也想知道
发表于 2010-5-14 17:21:33 | 显示全部楼层
本帖最后由 fjfhmnm 于 2010-5-14 17:24 编辑

可以调用一个挂机锁里的一个dll,,屏ctrl alt del  win之类的,,
这里有一个  http://www.autoitx.com/forum.php ... =%B9%D2%BB%FA%CB%F8  挂机锁他调用了dll锁定这几个键,,可以试下
发表于 2010-7-18 23:11:27 | 显示全部楼层
屏蔽还是比较麻烦的
_RunDOS("gpupdate /force /wait:0")
        _RunDOS("RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters")
        EnvUpdate()
试试这个
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 14:20 , Processed in 0.089371 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表