请问可不可以操作系统自带的计算器? 能不能将运算式直接传给计算器,然后用代码来实现最后的“=”号运算。小白这里遇到了点问题,希望大家可以帮忙想想。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以IntPtr hwndCalc = FindWindow ( null, "计算器" ); //查找计算器的句柄 if ( hwndCalc != IntPtr.Zero ) { IntPtr hwndThree = FindWindowEx ( hwndCalc, 0, null, "1" ); //获取按钮3 的句柄 IntPtr hwndPlus = FindWindowEx ( hwndCalc, 0, null, "+" ); } 谢谢wuyq11的答复,恩,先试试。 谢谢jx0797的指示。是这样的,我现在想试试wuyq11的方法,但是我在下面的代码中出现了点问题,调不下去了。[DllImport("user32.dll",EntryPoint="FindWindow")]public static extern IntPtr FindWindow(string strclass, string strname);public static extern IntPtr FindWindowEx(IntPtr hwndCalc, IntPtr child, string first, string second); 在第三行代码处出现了警告,程序运行的时候报错了。说是“方法FindWindowEx被标记为外部对象,并且它上面没有任何属性,请考虑添加一个dllimport”。因为同学这两天就要结果,所以着急了些,还请各位能帮忙看看。 问题解决了,受wuyq11的启发,找到了一遍解决文章。大致如下一、使用Process将计算器窗口先调出来,proc.StartInfo.FileName = @"calc.exe";//调出计算器proc.Start();二、 读取文件,保存到全局变量strCaculate中。三、使用FindWindow激活计算器窗口。四、利用FindWindowEx和SendMessage发送消息给计算器,让计算器执行命令。参考代码为:http://hi.baidu.com/enus/blog/item/3d5d49ef95309e1ffdfa3cb4.html其实人家把问题都解决了,发现自己果然很多东西还需要学习呢。谢谢大家。 ps:findwindowex无法在win7下找到数字键和符号键,这样做难度比自己写个计算器还大。 wuyazhe说得很对,我现在给朋友发过去了,但是他的系统是vista的。vista中使用findwindowex获取字符串“(”的句柄时,就不行了,取得的值为0. 这下惨了。有没有什么办法呢? 是我的问题还是微软的问题?求高人指教FileSystemWatcher 如何将所有pictureBox内的图片清除 被难住了! 怎样使文本框的滚动条自动向下滚动 实现只能运行一个实例,当第二次双击程序运行时把第一个激活并传递参数进去 C#将数据库导出到EXCEL时遇到问题,在线等. 100分,求一段代码,有两处不懂,肯请指点 WinForm问题,高手请进>> 如何实现用户登陆 DataGrid1数据源的更新? 高手来看下这个代码!!! 获取打开网站时候发送的请求包
IntPtr hwndCalc = FindWindow ( null, "计算器" ); //查找计算器的句柄
if ( hwndCalc != IntPtr.Zero )
{
IntPtr hwndThree = FindWindowEx ( hwndCalc, 0, null, "1" ); //获取按钮3 的句柄
IntPtr hwndPlus = FindWindowEx ( hwndCalc, 0, null, "+" );
}
是这样的,我现在想试试wuyq11的方法,但是我在下面的代码中出现了点问题,调不下去了。
[DllImport("user32.dll",EntryPoint="FindWindow")]
public static extern IntPtr FindWindow(string strclass, string strname);
public static extern IntPtr FindWindowEx(IntPtr hwndCalc, IntPtr child, string first, string second);
在第三行代码处出现了警告,程序运行的时候报错了。
说是“方法FindWindowEx被标记为外部对象,并且它上面没有任何属性,请考虑添加一个dllimport”。
因为同学这两天就要结果,所以着急了些,还请各位能帮忙看看。
一、使用Process将计算器窗口先调出来,
proc.StartInfo.FileName = @"calc.exe";
//调出计算器
proc.Start();
二、 读取文件,保存到全局变量strCaculate中。
三、使用FindWindow激活计算器窗口。
四、利用FindWindowEx和SendMessage发送消息给计算器,让计算器执行命令。
参考代码为:http://hi.baidu.com/enus/blog/item/3d5d49ef95309e1ffdfa3cb4.html
其实人家把问题都解决了,发现自己果然很多东西还需要学习呢。
谢谢大家。