WPF 全屏&&屏蔽系统快捷键

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace PingBiAll { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } //全屏 private void Window_Loaded(object sender, RoutedEventArgs e) { this.WindowState = System.Windows.WindowState.Normal;//还原窗口(非最小化和最大化) this.WindowStyle = System.Windows.WindowStyle.None; //仅工作区可见,不显示标题栏和边框 this.ResizeMode = System.Windows.ResizeMode.NoResize;//不显示最大化和最小化按钮 this.Topmost = true; //窗口在最前 this.Left = 0.0; this.Top = 0.0; this.Width = System.Windows.SystemParameters.PrimaryScreenWidth; this.Height = System.Windows.SystemParameters.PrimaryScreenHeight; } private void BtnClickShutdown(object sender, RoutedEventArgs e) { Application.Current.Shutdown(); } } }

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Runtime.InteropServices; using System.Threading.Tasks; using System.Windows; namespace PingBiAll { /// <summary> /// Interaction logic for App.xaml /// </summary> public partial class App : Application { //屏蔽系统热键 private struct KBDLLHOOKSTRUCT { public int vkCode; int scanCode; public int flags; int time; int dwExtraInfo; } private delegate int LowLevelKeyboardProcDelegate(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); [DllImport("user32.dll")] private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProcDelegate lpfn, IntPtr hMod, int dwThreadId); [DllImport("user32.dll")] private static extern bool UnhookWindowsHookEx(IntPtr hHook); [DllImport("user32.dll")] private static extern int CallNextHookEx(int hHook, int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); [DllImport("kernel32.dll")] private static extern IntPtr GetModuleHandle(IntPtr path); private IntPtr hHook; LowLevelKeyboardProcDelegate hookProc; // prevent gc const int WH_KEYBOARD_LL = 13; public App() { // hook keyboard IntPtr hModule = GetModuleHandle(IntPtr.Zero); hookProc = new LowLevelKeyboardProcDelegate(LowLevelKeyboardProc); hHook = SetWindowsHookEx(WH_KEYBOARD_LL, hookProc, hModule, 0); if (hHook == IntPtr.Zero) { MessageBox.Show("Failed to set hook, error = " + Marshal.GetLastWin32Error()); } } protected override void OnExit(ExitEventArgs e) { UnhookWindowsHookEx(hHook); // release keyboard hook base.OnExit(e); } private static int LowLevelKeyboardProc(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam) { if (nCode >= 0) switch (wParam) { //屏蔽下面的快捷键 case 256: // WM_KEYDOWN case 257: // WM_KEYUP case 260: // WM_SYSKEYDOWN case 261: // M_SYSKEYUP if ( (lParam.vkCode == 0x09 && lParam.flags == 32) || // Alt+Tab (lParam.vkCode == 0x1b && lParam.flags == 32) || // Alt+Esc (lParam.vkCode == 0x20 && lParam.flags == 32) || // Alt+Space (lParam.vkCode == 0x73 && lParam.flags == 32) || // Alt+F4 (lParam.vkCode == 0x1b && lParam.flags == 0) || // Ctrl+Esc (lParam.vkCode == 0x5b && lParam.flags == 1) || // Left Windows Key (lParam.vkCode == 0x5c && lParam.flags == 1)) // Right Windows Key { return 1; } break; } return CallNextHookEx(0, nCode, wParam, ref lParam); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」