在C#中禁用或隐藏其他应用程序中的最小化/最大化按钮,可以通过使用Windows API函数来实现。具体步骤如下:
DllImport
特性来声明外部函数。需要引入的函数有FindWindow
、GetSystemMenu
、EnableMenuItem
和DrawMenuBar
。using System;
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
[DllImport("user32.dll")]
private static extern bool EnableMenuItem(IntPtr hMenu, uint uIDEnableItem, uint uEnable);
[DllImport("user32.dll")]
private static extern bool DrawMenuBar(IntPtr hWnd);
private const int MF_BYCOMMAND = 0x00000000;
private const int SC_MINIMIZE = 0xF020;
private const int SC_MAXIMIZE = 0xF030;
private static void DisableMinMaxButtons(string windowTitle)
{
IntPtr hWnd = FindWindow(null, windowTitle);
IntPtr hSysMenu = GetSystemMenu(hWnd, false);
EnableMenuItem(hSysMenu, SC_MINIMIZE, MF_BYCOMMAND | 0x01); // 禁用最小化按钮
EnableMenuItem(hSysMenu, SC_MAXIMIZE, MF_BYCOMMAND | 0x01); // 禁用最大化按钮
DrawMenuBar(hWnd);
}
string windowTitle = "应用程序窗口标题";
DisableMinMaxButtons(windowTitle);
需要注意的是,这种方法只能禁用或隐藏其他应用程序的最小化/最大化按钮,对于一些特殊的应用程序可能无效。另外,使用Windows API函数需要谨慎操作,确保在合适的时机调用,并且注意处理可能出现的异常情况。
领取专属 10元无门槛券
手把手带您无忧上云