public class Max_Show_Process : MonoBehaviour {
/// <summary>
/// exe文件的路径
/// </summary>
string path = @"file:///C:\Users\RAN\Desktop\test\test.exe";
/// <summary>
///
/// </summary>
/// <param name="lpClassName"></param>
/// <param name="lpWindowName">窗口标题</param>
/// <returns></returns>
[DllImport("User32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("user32.dll")]
public extern static int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
void MaxShowProcess()
{
bool isStart = false;
Process[] processes = Process.GetProcesses();
foreach (Process item in processes)
{
if (item.ProcessName.Equals("test"))
{
isStart = true;
UnityEngine.Debug.Log(item.MainWindowTitle);
IntPtr hwnd = FindWindow(null, "TTT");
IntPtr activeWndHwnd = GetForegroundWindow();
if (hwnd != activeWndHwnd)
{
ShowWindowAsync(hwnd, 1); //3是最大化
SetForegroundWindow(hwnd);
}
}
}
if (!isStart)
{
Process.Start(path);
}
}
void Update () {
if (Input.GetKeyDown(KeyCode.Space))
{
MaxShowProcess();
}
}
}
程序窗口最大化并显示在最前端
最新推荐文章于 2024-05-08 17:09:03 发布