zoukankan      html  css  js  c++  java
  • C# 激活正在运行的程序

    static class Program
    {
    //给这个程序主窗体起个名字
    private static string strProcessName = "Form1";
    private static string strAppName = "WindowsFormsApplication1";
    static int hWnd = 0;
    //随便个数字,用来做判断
    const int SW_SHOW = 1;
    //指定是那个DLL,或者进程
    [DllImport("user32.dll", EntryPoint = "ShowWindow")]
    public static extern int ShowWindow(int hwnd, int nCmdShow);

    [DllImport("user32")]
    public static extern int GetWindowText(int hWnd, StringBuilder lpString, int nMaxCount);

    [DllImport("user32")]
    public static extern int EnumWindows(CallBack x, int y);

    public delegate bool CallBack(int hWnd, int lParam);

    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main()
    {
    //进程数组
    Process[] ps = Process.GetProcessesByName(strAppName);
    //声明个委托
    CallBack myCallBack = new CallBack(FineAppWindow);
    EnumWindows(myCallBack, 0);

    if (ps.Length > 1)
    {//如果进程里面有这个
    ShowWindow(hWnd, SW_SHOW);
    return;
    }
    else
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
    }
    }

    public static bool FineAppWindow(int hwnd, int lParam)
    {
    StringBuilder sb = new StringBuilder(200);
    int n = GetWindowText(hwnd, sb, 200);

    if (sb.ToString() == strProcessName)
    {
    hWnd = hwnd;
    }
    return true;
    }
    }


    调用的是系统的一个类库,代码也是在网上找到 就直接贴上去了 收藏,希望作者见了勿怪!非原创

  • 相关阅读:
    类的关联关系
    VisualStudio.DTE 对象可以通过检索 GetService() 方法
    openssl 安装
    反射的效率
    Ascll
    关于JavaScript 原型的理解
    asp.net MVC 学习笔记
    CSS3样式
    List<T>转DataTable
    SQL中的多表联查(SELECT DISTINCT 语句)
  • 原文地址:https://www.cnblogs.com/zyhblogs/p/2363147.html
Copyright © 2011-2022 走看看