捕获用于启动vbscript的键

捕获用于启动vbscript的键,vbscript,keyboard,mapping,Vbscript,Keyboard,Mapping,我有一个具有“宏”功能的应用程序。当我在键盘上映射一些键以执行“宏”时,我也可以让它启动vbscript 我想尝试做的是在vbscript中找出启动脚本所使用的键。有可能这样做吗?在vbscript中是否有一种方法可以计算出上次在键盘上触碰的键,然后我可以应用我的逻辑 这样做的目的是将代码保存在一个.vb文件中,而不是几个单独的.vb脚本文件(每个键盘映射一个,可能3-4个)。显然,我们希望只维护一个文件,而不是多个文件,每个文件中的代码基本相同 我倾向于认为这是不可能的,但我认为这对大多数人来

我有一个具有“宏”功能的应用程序。当我在键盘上映射一些键以执行“宏”时,我也可以让它启动vbscript

我想尝试做的是在vbscript中找出启动脚本所使用的键。有可能这样做吗?在vbscript中是否有一种方法可以计算出上次在键盘上触碰的键,然后我可以应用我的逻辑

这样做的目的是将代码保存在一个.vb文件中,而不是几个单独的.vb脚本文件(每个键盘映射一个,可能3-4个)。显然,我们希望只维护一个文件,而不是多个文件,每个文件中的代码基本相同


我倾向于认为这是不可能的,但我认为这对大多数人来说是一个有价值的问题。谢谢大家的帮助

你所要求的是不可能的


能否更改VBScript以接受参数,然后根据选择的热键使用不同的参数调用它?

您所要求的是不可能的


您能否将VBScript更改为接受参数,然后根据选择的热键使用不同的参数调用它?

我同意aphoria的观点,实现这种效果的唯一方法是,您的键盘映射软件允许您使用参数/参数分配脚本/命令。例如,如果您使用

c:\Temp\something.vbs
那你就把这个改成

%WINDIR%\system32\wscript.exe c:\temp\something.vbs "Ctrl-Alt-R"
然后,在vbscript代码中,可以使用wscript.Arguments对象集合收集参数,以根据传递的参数/参数执行操作。有关更多信息,请参见以下两个链接:


我同意aphoria的观点,实现这种功能的唯一方法是,如果键盘映射软件允许您使用参数/参数分配脚本/命令。例如,如果您使用

c:\Temp\something.vbs
那你就把这个改成

%WINDIR%\system32\wscript.exe c:\temp\something.vbs "Ctrl-Alt-R"
然后,在vbscript代码中,可以使用wscript.Arguments对象集合收集参数,以根据传递的参数/参数执行操作。有关更多信息,请参见以下两个链接:


一种可能的方法是安装键盘记录器并在VBScript中读取其日志

例如,在脚本的开头保存脚本开始时间

StartTime = Timer()

然后在此之前读取键盘记录器的一条日志记录。

您可以使用的一种方法是安装键盘记录器并在VBScript中读取其日志

例如,在脚本的开头保存脚本开始时间

StartTime = Timer()

然后在此之前阅读键盘记录器的一条日志记录。

我相信你是对的。我的计划是使用多个vbscript映射的宏,这些宏都调用带有输入参数的“主”vbscript文件,以帮助主vbscript确定要执行的操作。例如,当按下一个键时启动scriptA,scriptA所做的只是创建wsscript.shell对象并启动主vbscript文件,并将其值传递给“1”。主vbscript将获取该参数,并在case语句中使用它来确定要执行的操作。谢谢你的帮助,谢谢你接受我的回答。有什么原因不能在按键时用参数调用主脚本?我相信你是对的。我的计划是使用多个vbscript映射的宏,这些宏都调用带有输入参数的“主”vbscript文件,以帮助主vbscript确定要执行的操作。例如,当按下一个键时启动scriptA,scriptA所做的只是创建wsscript.shell对象并启动主vbscript文件,并将其值传递给“1”。主vbscript将获取该参数,并在case语句中使用它来确定要执行的操作。谢谢你的帮助,谢谢你接受我的回答。有什么原因不能在按键时使用参数调用主脚本?