AppControl.cs

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;

namespace KeyGo
{
    public static class AppControl
    {
        /// <summary>
        /// 获取本应用程序当前正在运行的进程,若不存在则返回null
        /// </summary>
        /// <returns>当前正在运行的进程</returns>
        public static Process GetCurrentRunningInstance()
        {
            Process current = Process.GetCurrentProcess();
            Process[] processes = Process.GetProcessesByName(current.ProcessName);
            //遍历与当前进程名称相同的进程列表
            foreach (Process process in processes)
            {
                //如果实例已经存在则忽略当前进程
                if (process.Id != current.Id)
                {
                    //保证要打开的进程同已经存在的进程来自同一文件路径
                    if (Assembly.GetExecutingAssembly().Location.Replace('/', '\\') == current.MainModule.FileName)
                    {
                        //返回已经存在的进程
                        return process;
                    }
                }
            }
            return null;
        }

        /// <summary>
        /// 显示指定实例窗体
        /// </summary>
        /// <param name="instance">The instance.</param>
        public static void ShowWindow(Process instance)
        {
            if (instance != null && instance.MainWindowHandle != IntPtr.Zero)
            {
                if (IsIconic(instance.MainWindowHandle))
                    ShowWindow(instance.MainWindowHandle, (int)CmdShow.Restore);
                SetForegroundWindow(instance.MainWindowHandle);
            }
        }

        /// <summary>
        /// 隐藏指定实例窗体
        /// </summary>
        /// <param name="instance">The instance.</param>
        public static void MinimizeWindow(Process instance)
        {
            if (instance != null && instance.MainWindowHandle != IntPtr.Zero)
                ShowWindow(instance.MainWindowHandle, (int)CmdShow.Minimize);
        }

        /// <summary>
        /// Determines whether [is foreground window] [the specified instance].
后面还有 110 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。