本文实例讲述了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程序设计有所帮助。