|
现在弄的一个脚本,一定要 按下 Send("^!{1}") 来呼叫 ctrl+alt+1 这个热键。
ctrl+alt+1 这个热键 是目标程序固定的,无法更改。
但是,我发现 用 Send 来呼叫这个热键 虽然可以 成功唤醒目标程序。
但是,却把 键盘的 alt 与 ctrl 两个键 锁死为了 按下状态。
而且:
Send("{^ }")
Send("{!}")
Send("{^ up}")
Send("{! up}")
Send("{lalt up}")
Send("{lctrl up}")
Send("{ralt up}")
Send("{rctrl up}")
这些命令都无法让 alt 与 ctrl 两键恢复为 up 状态。
目前只能用手点 alt 与 ctrl 两键 才可恢复为 up状态。
我想,是不是用 user32.dll 中的 改变键盘某键值状态的 API函数,才可以修改这个“bug”?
我知道 查看 键盘键值状态的API函数是:GetKeyState
使用格式是:DllCall("user32.dll", "long", "GetKeyState", "long", $VK_Code)
$VK_Code 代表是某个 键的 键值。
这个可以方便的知道 某个 按键 是up 还是 down 或者在某段时间内有没有被按过。
但是,我不知道,直接修改键盘键值 的状态 API的函数是什么。
而且在网上也没查到 alt 键的键值是多少。
Shift 是 0x10
Ctrl 是 0x11
想请教过路的高手:
Alt 的键值是多少呢?
有没有 能直接修改 某个键盘按键状态 的函数呢?
有的话 是哪个函数呢?
如果上面说的办法不行,有没其他能纠正这个bug的方法呢? |
|