用python操作Windows的计算器。

2025-05-16 11:06:55
推荐回答(3个)
回答1:

安装pywin32模块。
注意:乘法的优先级高,在计算器输入时要加括号!

代码:

import win32api,win32gui, win32con
import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("calc")
win32api.Sleep(1000)
shell.SendKeys("200{+}")
win32api.Sleep(1000)
shell.SendKeys("{(}100\x2a2{)}")
win32api.Sleep(1000)
shell.SendKeys("-22")
win32api.Sleep(1000)
shell.SendKeys("=")

h = win32gui.FindWindow("SciCalc", None)
edit = win32gui.FindWindowEx(h, None, 'Edit', None)
bufLen = 1024
buf = win32gui.PyMakeBuffer(bufLen)
n = win32gui.SendMessage(edit, win32con.WM_GETTEXT, bufLen, buf)
print buf[0:n]

win32api.Sleep(1000)
win32gui.SendMessage(h, win32con.WM_SYSCOMMAND, win32con.SC_CLOSE, 0);

运行结果:

378.

回答2:

pyhook可以抓到键。

不过这里只需要消息就可以了,win32api中的windows的message

使用vc中的消息 工具,抓键盘消息。然后再把这个消息包装一下用pywin32中的API发送过去。

我以前用pyhook加pywin32, 控制过一个游戏,做外挂。

也用pywin32的com接口控制过excel

回答3:

这个问题很有意思啊:
(1)为什么不直接编写程序完成这个计算呢?用python直接计算这个简单的运算多么方便啊!
(2)难道你的意图是练习用python编写脚本控制windows平台下的应用吗?那没问题,这样,你直接搜 “windows API 编程” 就可以,这个应该是你想要的东东......