zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }
    屏蔽系统快捷键
  • 相关阅读:
    FTP服务
    Samba文件共享服务设置
    Samba
    编译安装-httpd-2.2.15.tar.gz
    分析排查系统故障
    进程--计划任务
    磁盘配额
    LVM卷
    Linux磁盘分区
    用户组权限
  • 原文地址:https://www.cnblogs.com/lizhiqiang0204/p/13665020.html
Copyright © 2011-2022 走看看