zoukankan      html  css  js  c++  java
  • 【Winform】两程序相互调用前置显示

    有A&B两个程序,程序A调用程序B, 如果B已运行时将B前置显示 B未打开时开始运行

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
    		Process[] pps = System.Diagnostics.Process.GetProcessesByName("cmd");
    		var helpw = from pc in pps where pc.MainWindowTitle == "XXX" select pc;
    
    		if (helpw.Count() > 0)
    		{
    			HandleRunningInstance(pps[0]);
    		}
    		else
    		{
    			System.Diagnostics.Process.Start($"cmd");
    		}
        }
        catch (Exception ex)
        {
    		System.Diagnostics.Debug.Assert(false, ex);
        }
    }
    
    private static void HandleRunningInstance(Process instance)
    {
        /*
        https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-showwindow 
        */
        ShowWindowAsync(instance.MainWindowHandle, 1); //调用api函数,正常显示窗口
        SetForegroundWindow(instance.MainWindowHandle); //将窗口放置最前端
    }
    
    [DllImport("User32.dll")]
    private static extern bool ShowWindowAsync(System.IntPtr hWnd, int cmdShow);
    [DllImport("User32.dll")]
    private static extern bool SetForegroundWindow(System.IntPtr hWnd);
    
    

    如果有错误的地方,还望各位多多指点
    写个博客,来记录自己成长的一些经历,或许也能顺便帮助他人。
  • 相关阅读:
    python汉诺塔
    圆周率计算
    PIL: 建立一个GIF图
    Jieba库使用和好玩的词云
    Turtle库的建立——汉诺塔
    计算pi的精度+进度条显示
    Python——我所学习的turtle函数库
    Python——教你画朵太阳花
    Python常用模块re的使用
    正则表达式字符组/元字符/量词
  • 原文地址:https://www.cnblogs.com/Katakana/p/11743601.html
Copyright © 2011-2022 走看看