使用WScript.Shell从Calculator获得结果

时间:2013-10-15 15:05:22

标签: python windows

我想从Calculator获得操作结果,但找不到任何特殊功能。 这是我的代码:

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,这是我的第一步。谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定你在做什么,可能有更好的方法,但你可以发送 = 点击,然后按 Ctrl + C 作为1{+}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
>>>