如何用shell.SendKeys选择和删除所有(ctrl + shift +左箭头+ del)?

时间:2010-08-03 22:08:58

标签: python sendkeys

嘿,我在这里遇到麻烦......

如何使用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?

2 个答案:

答案 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}")