Board logo

标题: [分享]创建虚拟的系统热键 [打印本页]

作者: qinchun36     时间: 2009-8-4 02:22    标题: [分享]创建虚拟的系统热键

Windows  系统中 按 CTRL+ALT+DEL 能弹出任务管理器,那我们能不能自己定义一些热键呢?
结果很失望,取网上查说是注册表里没有,要什么 HOOK 才行,就是必须要开一个应用程序才能实现。
不过我可以实现相同功能,自己机器上屡试不爽,什么截屏、游戏的哈哈。

具体的办法是借助系统为快捷方式提供的热键来达到目的。
下面是 VBSCRIPT 代码,保存为 .VBS 文件,相关的注释都添加到代码里面了:
'┌───────────────┐
'│       创建“系统热键”       │
'│                              │
'│ (P)&(C)2009 『据说是李先生』 │
'└───────────────┘
set ching  = createobject("wscript.shell")
set fso    = createobject("scripting.filesystemobject")

'***根据微软说明,只有当快捷方式放在桌面(Desktop)或者「开始」菜单(StartMenu) 中时热键才有效。
' 热键一般为 Ctrl、Alt、Shift、0-9、A-Z(不区分大小写)、F1-F12 的组合。
'   注意自定义的热键不要覆盖系统本身的,例如 CTRL+C ,或者是直接一个字母比如 Q 等,
'   建议以Ctrl+Alt 开头,以免发生不必要的麻烦。

'创建快捷方式的函数,默认为放在开始菜单下面。
'    调用方式
'    CreateHotKey "快捷键", "目标可执行文件绝对路径", "快捷方式文件名称"
Function CreateHotKey(HotKey, TargetFile, LinkFile)
  LinkFile = ching.specialfolders("startmenu") & "\" & LinkFile & ".lnk"
  '如果存在原文件则不能成功的创建,需要先删除。
  if fso.fileexists(LinkFile) then fso.deletefile(LinkFile)
  with ching.createshortcut(LinkFile)
    .TargetPath                = TargetFile
    .Hotkey                = HotKey
    .WindowStyle        = 1
    .IconLocation        = TargetFile & ",0"
    .Description        = ""
    .WorkingDirectory         = ""
    .Save
  end with
  '为了美观,将这个快捷方式隐藏,也可以去掉下面这行。
  fso.getfile(LinkFile).attributes = 2
End Function


'**** 下面是一些实例,路径根据自己的实际情况更改 *****


' Ctrl + Q  ----截屏
'   不在组合中使用 Alt 是为了更大的兼容性地截取图像,因为有右键弹出菜单时 Alt 会使弹出菜单消失。
CreateHotKey "Ctrl+Q", "D:\Program files\Mini Plugin\SnapShot\SnapShot.exe", "SnapShot"


' Ctrl + W  ----CMD命令行窗口
CreateHotKey "Ctrl+W", "%systemroot%\system32\cmd.exe", "CMD"


' Ctrl + Alt + Q ----腾讯QQ
CreateHotKey "Ctrl+Alt+Q", "D:\Program files\Tencent\QQ2009\Bin\QQ.exe", "腾讯QQ"


' Ctrl + Alt + W  ----魔兽争霸
CreateHotKey "Ctrl+Alt+W", "D:\Warcraft III\Frozen Throne.exe", "Frozen Throne"
注意:不知道是我机器问题还是怎么的,重启过后它就不认识了,所以建议把这个脚本放到启动文件夹里面,反正一点也不耗资源。
附带:一个截屏软件,从 腾讯浏览器提取出来的,点此下载 SnapShot
附件 1: 启动后要做的.zip (2009-8-4 02:22, 1.24 K,下载次数: 30)