用python操作Windows的计算器。
1,打开Windows的计算器;2,控制计算器完成200+100*2-22的计算;3,取出该计算结果然后打印(print语句)出来。4,关闭窗口。...
1,打开Windows的计算器;2,控制计算器完成200+100*2-22的计算;3,取出该计算结果然后打印(print语句)出来。4,关闭窗口。
展开
3个回答
2013-03-01
展开全部
安装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.
注意:乘法的优先级高,在计算器输入时要加括号!
代码:
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.
展开全部
pyhook可以抓到键。
不过这里只需要消息就可以了,win32api中的windows的message
使用vc中的消息 工具,抓键盘消息。然后再把这个消息包装一下用pywin32中的API发送过去。
我以前用pyhook加pywin32, 控制过一个游戏,做外挂。
也用pywin32的com接口控制过excel
不过这里只需要消息就可以了,win32api中的windows的message
使用vc中的消息 工具,抓键盘消息。然后再把这个消息包装一下用pywin32中的API发送过去。
我以前用pyhook加pywin32, 控制过一个游戏,做外挂。
也用pywin32的com接口控制过excel
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题很有意思啊:
(1)为什么不直接编写程序完成这个计算呢?用python直接计算这个简单的运算多么方便啊!
(2)难道你的意图是练习用python编写脚本控制windows平台下的应用吗?那没问题,这样,你直接搜 “windows API 编程” 就可以,这个应该是你想要的东东......
(1)为什么不直接编写程序完成这个计算呢?用python直接计算这个简单的运算多么方便啊!
(2)难道你的意图是练习用python编写脚本控制windows平台下的应用吗?那没问题,这样,你直接搜 “windows API 编程” 就可以,这个应该是你想要的东东......
追问
我现在已经实现了第一步,执行python程序可以打开计算器了,但是我想知道的是怎么用python来在计算器里输入数字和符号进行运算呢?我搜windows API编程,出来的都是第一步的实现。
追答
嗯,你说的这个我还真没弄过,但按理来说,windows api 应该有控制键盘输入的功能,你用脚本启动计算器后,计算器获得焦点,然后看看windows api中有没有message机制,用脚本控制键盘输入,然后用message传给计算器(也就是用python通过windows api操控键盘,这个可以做到),然后就达到你想要的效果啦,你还是再查查windows api吧,主要查 “键盘输入” 那里......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询