当前位置: 首页 > 编程笔记 >

C#通过热键控制显示器开关的方法

石臻
2023-03-14
本文向大家介绍C#通过热键控制显示器开关的方法,包括了C#通过热键控制显示器开关的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了C#通过热键控制显示器开关的方法。分享给大家供大家参考。

具体实现方法如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace OpenMonitor {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();             HotKey.RegisterHotKey(this.Handle, 100, 0, Keys.F4);             HotKey.RegisterHotKey(this.Handle,101,0,Keys.F5);         }

        class HotKey         {             // 如果函数执行成功,返回值不为0。             // 如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。             [DllImport("user32.dll  ", SetLastError = true)]             public static extern bool RegisterHotKey(                    IntPtr hWnd, // 要定义热键的窗口的句柄                     int id,    // 定义热键ID(不能与其它ID重复)                      KeyModifiers fsModifiers, // 标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效                    Keys vk    // 定义热键的内容                    );

            [DllImport("user32.dll  ", SetLastError = true)]             public static extern bool UnregisterHotKey(                    IntPtr hWnd,  // 要取消热键的窗口的句柄                     int id      // 要取消热键的ID                    );

            // 定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)             [Flags()]             public enum KeyModifiers             {                 None = 0,                 Alt = 1,                 Ctrl = 2,                 Shift = 4,                 WindowsKey = 8             }         }

        protected override void WndProc(ref    Message m)         {             const int WM_HOTKEY = 0x0312;             // 按快捷键               switch (m.Msg)             {                 case WM_HOTKEY:                     switch (m.WParam.ToInt32())                     {                         case 100:                             MonitorHelper.TurnOn();                             break;                         case 101:                             MonitorHelper.TurnOff();                             break;                     }                     break;             }             base.WndProc(ref    m);         }

        class MonitorHelper         {             public static void TurnOn()             {                 SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);             }

            public static void TurnOff()             {                 SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);             }

            [DllImport("user32.dll")]             public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

            private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);             private const uint WM_SYSCOMMAND = 0x0112;             private const int SC_MONITORPOWER = 0xf170;         }     } }

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C#控制键盘按键的常用方法,包括了C#控制键盘按键的常用方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#控制键盘按键的常用方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍matplotlib.pyplot绘图显示控制方法,包括了matplotlib.pyplot绘图显示控制方法的使用技巧和注意事项,需要的朋友参考一下 在使用Python库时,常常会用到matplotlib.pyplot绘图,本文介绍在PyCharm及Jupyter Notebook页面中控制绘图显示与否的小技巧。 在PyCharm中显示绘图 在绘图代码最后加上“plt.show()”

  • 本文向大家介绍thinkPHP控制器变量在模板中的显示方法示例,包括了thinkPHP控制器变量在模板中的显示方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP控制器变量在模板中的显示方法。分享给大家供大家参考,具体如下: 控制器中变量 模板中引用位置一:php代码中,直接用$i; 模板中引用位置二:模板中直接应用{$i}或者 class="{$unlogined}"

  • 为什么我不能更改方法的名称或在现有的控制器中添加一个新方法?或者我应该说,我如何才能添加一个方法,并让它大摇大摆地展示出来?

  • 对于控制器中的show($id)、edit($id)方法,它必须是数据库表中的“id”列吗 我想用数据库表中“post_id”列的值替换$id,但它引发错误: 如何修复它? 示例代码: 数据库表: id(int)、post_id(varchar32)、post_标题(varchar32)、post_内容(text) 路线: 路由::资源('posts','PostsController'); Po

  • 本文向大家介绍Javascript通过overflow控制列表闭合与展开的方法,包括了Javascript通过overflow控制列表闭合与展开的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Javascript通过overflow控制列表闭合与展开的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。