使用 user32.dll 實現 遊戲視窗的 最小化、最大化和還原窗口 的功能
using System;
using System.Runtime.InteropServices;
/// <summary>
/// 窗口控制器類,提供最小化、最大化和還原窗口的方法。
/// </summary>
public static class WindowController
{
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
const int SW_SHOWMINIMIZED = 2; // 最小化, 激活
const int SW_SHOWMAXIMIZED = 3; // 最大化
const int SW_SHOWRESTORE = 1; // 還原
/// <summary>
/// 最小化當前窗口。
/// </summary>
public static void MinimizeWindow()
{
ShowWindow(GetForegroundWindow(), SW_SHOWMINIMIZED);
}
/// <summary>
/// 最大化當前窗口。
/// </summary>
public static void MaximizeWindow()
{
ShowWindow(GetForegroundWindow(), SW_SHOWMAXIMIZED);
}
/// <summary>
/// 還原當前窗口。
/// </summary>
public static void RestoreWindow()
{
ShowWindow(GetForegroundWindow(), SW_SHOWRESTORE);
}
}
使用範例
WindowMinimizer.cs
using UnityEngine;
/// <summary>
/// 窗口最小化類,在遊戲啟動時最小化整個遊戲。
/// </summary>
public class WindowMinimizer : MonoBehaviour
{
void Start()
{
WindowController.MinimizeWindow();
}
}
用於Client、Server一體遊戲。
當Client連上區域網時,沒有偵測到Server,就開一個Server,並將Server最小化避免搶佔Client螢幕