winform对系统计算器的调用,启动,最大化最小化显示,在mainwindow设置topmost=true时,正常显示计算器并置顶。

        /// <summary>
/// 获取窗体的句柄函数
/// </summary>
/// <param name="lpClassName">窗口类名</param>
/// <param name="lpWindowName">窗口标题名</param>
/// <returns>返回句柄</returns>
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); /// <summary>
/// 窗体的显示控制
/// </summary>
/// <param name="hWnd">句柄</param>
/// <param name="nCmdShow">
/// HIDE = 0
/// NORMAL = 1
/// MAXIMIZE = 3
/// SHOWNOACTIVATE = 4
/// SHOW = 5
/// MINIMIZE = 6
/// RESTORE = 9
/// SHOWDEFAULT = 10</param>
/// <returns></returns>
[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd,int nCmdShow); /// <summary>
/// 更改子窗口,弹出窗口或顶级窗口的大小,位置和Z顺序。这些窗口是根据其在屏幕上的外观排序的。最顶部的窗口获得最高排名,并且是Z顺序中的第一个窗口。
/// </summary>
/// <param name="hWnd">窗口的句柄</param>
/// <param name="hWndlnsertAfter">在Z顺序中位于定位的窗口之前的窗口的句柄 0; 在前面 1; 在后面 -1; 在前面, 位于任何顶部窗口的前面 -2; 在前面, 位于其他顶部窗口的后面</param>
/// <param name="X"></param>
/// <param name="Y"></param>
/// <param name="cx"></param>
/// <param name="cy"></param>
/// <param name="Flags">窗口尺寸和定位的标志</param>
/// <returns></returns>
[DllImport("user32.dll")]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndlnsertAfter, int X, int Y, int cx, int cy, uint Flags); //启动计算器
public void start_Calc()
{
AppLog.Info($"start calc ..."); // 获取查找窗体句柄(通过窗体标题名)
IntPtr calcHandle = FindWindow(null, "计算器");
if (calcHandle == IntPtr.Zero)
{
AppLog.Info($"pre start calc ...");
pcalc = Process.Start("calc.exe");
Thread.Sleep();
calcHandle = FindWindow(null, "计算器");
} //将计算器显示为正常状态
bool resultSetWindowState = ShowWindowAsync(calcHandle, );
AppLog.Info($"set calc window status:{resultSetWindowState}"); //将计算器显示在最上层
bool result = SetWindowPos(calcHandle, new IntPtr(-), , , , , | );
AppLog.Info($"set calc status:{result}");
}

最新文章

  1. 几道web前端练习题目
  2. NPOI、MyXls、Aspose.Cells 导入导出Excel(转)
  3. Android内核剖析读书笔记
  4. page80-栈用例-算术表达式求值
  5. 第五章 MVC之 FileResult 和 JS请求二进制文件
  6. Python数据分析Pandas库之熊猫(10分钟二)
  7. CSS3-1
  8. Css3实现波浪效果2
  9. Minimum Domino Rotations For Equal Row LT1007
  10. 加减乘除工具类BigDecimalUtil
  11. jQuery页面引导插件 jquery-pagewalkthrough
  12. SQL 报表 --简易进销系统
  13. WPF基础学习第一天
  14. 如何通过phoenix中查看表的主键信息
  15. docker学习-运行第一个docker镜像hello world
  16. (转)一个非常好的akka教程
  17. Vue-[v-model]理解示例
  18. 分享:SQL优化器简介
  19. Tornado 高并发源码分析之一---启动一个web服务
  20. Qt 学习之路 2(67):访问网络(3)

热门文章

  1. Redis详解(七)——集群
  2. List&lt;Object&gt; 查询解析优化
  3. 吴裕雄--天生自然java开发常用类库学习笔记:线程操作案例——生产者与消费者
  4. 小程序分享报错 Cannot read property &#39;apply&#39; of null;at page XXX onShareAppMessage function
  5. uni-app开发小程序-使用uni.switchTab跳转后页面不刷新的问题
  6. 《方方格子》(WPS版) _v3.6.6.0
  7. 二十三、JavaScript之html事件
  8. jQuery原理系列-Dom Ready
  9. Codeforces 176B 经典DP
  10. torch.cuda.FloatTensor