Board logo

标题: [问题求助] vbs在设置快捷方式的快捷键时如何引用非字母数字符号如=-,/ [打印本页]

作者: sunvi    时间: 2021-2-1 17:40     标题: vbs在设置快捷方式的快捷键时如何引用非字母数字符号如=-,/

代码如下(运行可以):
  1. set WshShell=Wscript.CreateObject("Wscript.Shell")
  2. set oShellLink=WshShell.CreateShortcut("C:\56.lnk")
  3. oShellLink.Hotkey="Ctrl+Alt+8"
  4. oShellLink.Save
复制代码
代码如下(想用Ctrl+Alt+一个等号来做快捷键,但运行不可以):
  1. set WshShell=Wscript.CreateObject("Wscript.Shell")
  2. set oShellLink=WshShell.CreateShortcut("C:\56.lnk")
  3. oShellLink.Hotkey="Ctrl+Alt+="
  4. oShellLink.Save
复制代码

作者: WHY    时间: 2021-2-1 21:30

  1. set WshShell=CreateObject("Wscript.Shell")
  2. set oShellLink=WshShell.CreateShortcut("D:\56.lnk")
  3. oShellLink.Save
  4. Set oShell = CreateObject("Shell.Application")
  5. Set oLink = oShell.NameSpace("D:\").ParseName("56.lnk").GetLink
  6. oLink.HotKey = 1024 + 512 + 187
  7. oLink.Save
复制代码
0000011010111011
按照巨硬的Shell.Application文档说明,从右往左数,低8位(187)为"="的虚拟键码位,第9、10、11位分别为 shift、ctrl、alt 码位
作者: sunvi    时间: 2021-2-2 11:54

本帖最后由 sunvi 于 2021-2-2 19:18 编辑

感谢2楼的代码,运行可以。
昨晚请教了本论坛大佬czjt1234,也得以解决,他的代码如下,运行可以,共勉:
Set oShell = CreateObject("Shell.Application")
Set oShellLinkObject = oShell.NameSpace("C:\").ParseName("56.lnk").GetLink
oShellLinkObject.Hotkey = &H0EBB
oShellLinkObject.Save()
在此感谢大佬czjt1234,谢谢~
作者: sunvi    时间: 2021-2-2 11:57

有个图片解释:
作者: sunvi    时间: 2021-2-2 19:30

参照以上两位大佬的代码,经过验证代码也可以如下:
Set oShell = CreateObject("Shell.Application")
Set oShellLinkObject = oShell.NameSpace("C:\").ParseName("56.lnk").GetLink
oShellLinkObject.Hotkey = 1024 + 512 + 187
oShellLinkObject.Save()
作者: WHY    时间: 2021-2-2 20:42

参考:
https://docs.microsoft.com/en-us ... lllinkobject-hotkey
https://docs.microsoft.com/en-us ... v/virtual-key-codes




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2