我正在使用win32com进行Windows自动化,我正在尝试将SendKeys发送到某个应用程序,但它不是发送支持 示例:(尝试发送)
name = "Jayesh (Nick Name)"
shell.SendKeys(name)
预期产出:
Jayesh (Nick Name)
但输出
Jayesh Nick Name
如何解决这个问题? 感谢
答案 0 :(得分:2)
您需要将括号括在大括号中才能使其正常工作:
shell.SendKeys("Jayesh {(}Nick Name{)}")
答案 1 :(得分:1)
您可以使用以下send_keys()
功能。这将自动将您的文本转换为适合该功能使用。
import time
import win32api
import win32com.client
def send_keys(text):
for src, dst in [('{', '['), ('}', ']'), ('(', '{(}'), (')','{)}'), ('+', '{+}'), ('^', '{^}'), (r'%', r'{%}'), ('~', '{~}')]:
text = text.replace(src, dst)
shell.SendKeys(text)
shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("notepad")
time.sleep(1)
shell.AppActivate("Notepad")
send_keys(r"Testing + ^ % ~ () +/- {")
加号+
,插入符^
,百分号%
,代字号~
和括号( )
都需要用大括号括起来。
curly括号本身也需要包装,但不幸的是,在尝试发送这些时,Python中似乎存在问题,导致pywintypes.com_error
异常。因此,该函数通过将字符转换为方括号[ ]
来避免这种情况。