• C# 判断某程序是否运行


    [DllImport("user32.dll")]

            private static extern bool

            SetForegroundWindow(IntPtr hWnd);

            [DllImport("user32.dll")]

            private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);

            [DllImport("user32.dll")]

            private static extern bool IsIconic(IntPtr hWnd);

            // 消息函数

            [DllImport("user32.dll", EntryPoint = "PostMessageA")]

            public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

            [DllImport("user32.dll")]

            public static extern IntPtr FindWindow(string strclassName, string strWindowName);

            [DllImportAttribute("user32.dll")]

            public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

            public const int WM_SYSCOMMAND = 0x0112;

            public const int SC_MAXIMIZE = 0xF030;

            private string exeName = "SaoMiaoApp";

            public void SetForm()

            {

                Process[] processes = Process.GetProcessesByName(exeName);

                if (processes.Length > 0)

                {

                    IntPtr hWnd = processes[0].MainWindowHandle;

                    if (IsIconic(hWnd))

                        ShowWindowAsync(hWnd, 9);// 9就是SW_RESTORE标志,表示还原窗体

                    //SendMessage(hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0);

                    SetForegroundWindow(hWnd);

                }

                else

                {

                    Process.Start(exeName + ".exe");

                }

            }

  • 相关阅读:
    零拷贝
    RxJava2源码解析
    一次博客崩溃日志分析
    Spring循环依赖的解决
    解决网络卡顿问题
    软工第一次作业
    3月26-27号训练笔记
    Codeforces Round #708 (Div. 2)题解A,B,C1,C2,E1,E2
    求出所有LIS的可行起点
    2020小米邀请赛决赛补题G,I,J(三DP)
  • 原文地址:https://www.cnblogs.com/rr163/p/3999474.html
Copyright © 2020-2023  润新知