• 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;
    }
    }


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

  • 相关阅读:
    Datax streamreader json测试样例
    dbeaver 连接 elasticsearch 记录
    灾害链开发记录资料汇总
    mxgraph
    drawio www.diagrams.net 画图应用程序开发过程资料汇总
    neo4j学习记录
    GraphVis 图可视化分析组件
    D3学习记录
    Kubernetes K8S之固定节点nodeName和nodeSelector调度详解
    记一次性能优化,单台4核8G机器支撑5万QPS
  • 原文地址:https://www.cnblogs.com/zyhblogs/p/2363147.html
Copyright © 2020-2023  润新知