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 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
