如何使用sendkeys从字段中删除整个文本?
如何用左箭头按下ctrl + shift并在?
之后删除键编辑:
例如,我有这部分代码
ctypes.windll.user32.SetCursorPos(910,475)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0)
time.sleep(0.1)
shell.SendKeys(inf_firstname)
这部分选择一个字段并粘贴第一个名字信息(就像一个宏),但是我想在粘贴删除字段内容的信息之前做一些事情,如果它有一个......
capiche?
答案 0 :(得分:4)
我不知道Sendkeys,但我知道你可以用ctypes发送击键。
以下是通过发送CTRL + A和BACK来删除文本的方法:
ctypes.windll.user32.keybd_event(0x11, 0, 0, 0) #CTRL is down
ctypes.windll.user32.keybd_event(ord("A"), 0, 0, 0) #A is down
ctypes.windll.user32.keybd_event(ord("A"), 0, 0x0002, 0) #A is up
ctypes.windll.user32.keybd_event(0x11, 0, 0x0002, 0) #CTRL is up
ctypes.windll.user32.keybd_event(0x08, 0, 0, 0) #BACK is down
ctypes.windll.user32.keybd_event(0x08, 0, 0x0002, 0) #BACK is up
您需要发送Windows虚拟密钥代码。有关完整列表,请参阅here。
它可能类似于SendKeys
我希望它有所帮助
答案 1 :(得分:3)
可能想要做Ctrl + A而不是? 您能举一个不适合您的代码的简短示例吗?
根据SendKeys的实现,它可能不会同时接受所有这些。它可能需要多个SendKeys调用。你可以尝试一次做一个,分别调用SendKeys。
修改强>
http://msdn.microsoft.com/en-us/library/8c6yea83.aspx
在我看来,你应该能够做到这一点:
shell.SendKeys("^a")
shell.SendKeys("{DELETE}")