0

我想从计算器中得到一个运算结果,但找不到任何特殊功能。这是我的代码:

import win32com.client
import win32api
shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("calc")
win32api.Sleep(100)
shell.AppActivate("Calculator")
win32api.Sleep(100)
shell.SendKeys("1{+}")
win32api.Sleep(500)
shell.SendKeys("2")
win32api.Sleep(500)

然后我想从 calc 中获取结果并将其与 if_then 进行比较,例如

if calc_result== 3:
    print ("True")
else:
    print ("False")

我正在开发 Python 3.3.2,这是我的第一步。谢谢你。

4

1 回答 1

0

我不确定您在做什么,可能有更好的方法,但是您可以发送=click 后跟Ctrl+ C1{+}2{=}^C这样您就可以将其复制到剪贴板,然后使用 Windows 剪贴板功能读取它,例如:

import win32com.client
import win32api
shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("calc")
win32api.Sleep(100)
shell.AppActivate("Calculator")
shell.SendKeys("1{+}2{=}^C")
win32api.Sleep(500)

import win32clipboard
import win32con
win32clipboard.OpenClipboard()
r = win32clipboard.GetClipboardData(win32con.CF_TEXT).rstrip('\x00')
win32clipboard.CloseClipboard()
print(r)

预览:

>>> import win32com.client
>>> import win32api
>>> shell = win32com.client.Dispatch("WScript.Shell")
>>> shell.Run("calc")
0
>>> win32api.Sleep(100)
0
>>> shell.AppActivate("Calculator")
False
>>> shell.SendKeys("1{+}2{=}^C")
>>> win32api.Sleep(500)
0
>>>
>>> import win32clipboard
>>> import win32con
>>> win32clipboard.OpenClipboard()
>>> r = win32clipboard.GetClipboardData(win32con.CF_TEXT).rstrip('\x00')
>>> win32clipboard.CloseClipboard()
>>> print(r)
3
>>>
于 2013-10-15T15:36:46.277 回答