Python 3.x 在python中模拟物理按键,而不提升LowLevelKeyHookInjected(0x10)标志
我试图在python中模拟一个物理按键(即F12),而不在Windows中提升LowLevelKeyHookInjected(0x10)标志。其目的是在程序中触发一个动作,过滤掉模拟键盘按键。该程序是一种辅助技术,为操作系统控制提供了替代访问方法 我已经尝试了很多选项,包括SendKeys、pyauotogui、pynput、ctype等等 如果我实际按下F12,我可以触发适当的操作,但是,使用上述方法通过python模拟F12按下和释放是不起作用的。以下是我尝试过的一个例子:Python 3.x 在python中模拟物理按键,而不提升LowLevelKeyHookInjected(0x10)标志,python-3.x,emulation,simulation,keypress,keyboard-events,Python 3.x,Emulation,Simulation,Keypress,Keyboard Events,我试图在python中模拟一个物理按键(即F12),而不在Windows中提升LowLevelKeyHookInjected(0x10)标志。其目的是在程序中触发一个动作,过滤掉模拟键盘按键。该程序是一种辅助技术,为操作系统控制提供了替代访问方法 我已经尝试了很多选项,包括SendKeys、pyauotogui、pynput、ctype等等 如果我实际按下F12,我可以触发适当的操作,但是,使用上述方法通过python模拟F12按下和释放是不起作用的。以下是我尝试过的一个例子: import p
import pynput.keyboard import Key, Controller
import time
Keyboard = Controller()
keyboard.press(Key.f12)
time.sleep(.05)
keyboard.release(Key.f12)
因此,它只是模拟f12按键,等待.05秒,然后释放按键
我正在Windows上运行Python 3.6.6
提前感谢您的帮助 这是我几天前遇到同样问题时使用的。虽然有点凌乱,但它完成了任务。:) 只需使用F12()来模拟F12键 如果您还想模拟其他键,您可以将F12函数中的where is says 0x7B更改为其他键(查看msdn.microsoft.com/en-us/library/dd375731以查找哪些键具有什么值)。 要模拟字母,这可能有助于快速转换:
def toKeyCode(c):
keyCode = keyCodeMap[c[0]]
return int(keyCode, base=16)
keyCodeMap = {
'shift' : "0x10",
'0' : "0x30",
'1' : "0x31",
'2' : "0x32",
'3' : "0x33",
'4' : "0x34",
'5' : "0x35",
'6' : "0x36",
'7' : "0x37",
'8' : "0x38",
'9' : "0x39",
'a' : "0x41",
'b' : "0x42",
'c' : "0x43",
'd' : "0x44",
'e' : "0x45",
'f' : "0x46",
'g' : "0x47",
'h' : "0x48",
'i' : "0x49",
'j' : "0x4A",
'k' : "0x4B",
'l' : "0x4C",
'm' : "0x4D",
'n' : "0x4E",
'o' : "0x4F",
'p' : "0x50",
'q' : "0x51",
'r' : "0x52",
's' : "0x53",
't' : "0x54",
'u' : "0x55",
'v' : "0x56",
'w' : "0x57",
'x' : "0x58",
'y' : "0x59",
'z' : "0x5A",
}
(这也是我的第一篇帖子,如果我把事情搞砸了,我很抱歉:D)这是我几天前遇到同样问题时使用的。虽然有点凌乱,但它完成了任务。:) 只需使用F12()来模拟F12键 如果您还想模拟其他键,您可以将F12函数中的where is says 0x7B更改为其他键(查看msdn.microsoft.com/en-us/library/dd375731以查找哪些键具有什么值)。 要模拟字母,这可能有助于快速转换:
def toKeyCode(c):
keyCode = keyCodeMap[c[0]]
return int(keyCode, base=16)
keyCodeMap = {
'shift' : "0x10",
'0' : "0x30",
'1' : "0x31",
'2' : "0x32",
'3' : "0x33",
'4' : "0x34",
'5' : "0x35",
'6' : "0x36",
'7' : "0x37",
'8' : "0x38",
'9' : "0x39",
'a' : "0x41",
'b' : "0x42",
'c' : "0x43",
'd' : "0x44",
'e' : "0x45",
'f' : "0x46",
'g' : "0x47",
'h' : "0x48",
'i' : "0x49",
'j' : "0x4A",
'k' : "0x4B",
'l' : "0x4C",
'm' : "0x4D",
'n' : "0x4E",
'o' : "0x4F",
'p' : "0x50",
'q' : "0x51",
'r' : "0x52",
's' : "0x53",
't' : "0x54",
'u' : "0x55",
'v' : "0x56",
'w' : "0x57",
'x' : "0x58",
'y' : "0x59",
'z' : "0x5A",
}
(这也是我的第一篇帖子,如果我把事情搞砸了,我很抱歉:D)