Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c# 快捷键功能 在应用模块输出 没事 类型 输出就无效了 ?

c# 快捷键功能 在应用模块输出 没事 类型 输出就无效了 ?

提问于 2020-12-10 15:26:28
回答 0关注 0查看 183

c# 快捷键功能 在应用模块输出 没事 类型 输出就无效了 代码如下: using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using System.Collections;

namespace WindowsFormsApplication1

{ public delegate void HotkeyEventHandler(int HotKeyID);

public class Hotkey : System.Windows.Forms.IMessageFilter

{

Hashtable keyIDs = new Hashtable();

IntPtr hWnd;

static public int Hotkey1;

public event HotkeyEventHandler OnHotkey;

public enum KeyFlags

{

MOD_ALT = 0x1,

MOD_CONTROL = 0x2,

MOD_SHIFT = 0x4,

MOD_WIN = 0x8

}

[DllImport("user32.dll")]

public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk); [DllImport("user32.dll")]

public static extern UInt32 UnregisterHotKey(IntPtr hWnd, UInt32 id);

[DllImport("kernel32.dll")]

public static extern UInt32 GlobalAddAtom(String lpString);

[DllImport("kernel32.dll")]

public static extern UInt32 GlobalDeleteAtom(UInt32 nAtom);

public Hotkey(IntPtr hWnd)

{

this.hWnd = hWnd;

Application.AddMessageFilter(this);

}

public int RegisterHotkey(Keys Key, KeyFlags keyflags)

{

UInt32 hotkeyid = GlobalAddAtom(System.Guid.NewGuid().ToString());

RegisterHotKey((IntPtr)hWnd, hotkeyid, (UInt32)keyflags, (UInt32)Key);

keyIDs.Add(hotkeyid, hotkeyid);

return (int)hotkeyid;

}

public void UnregisterHotkeys()

{

Application.RemoveMessageFilter(this);

foreach (UInt32 key in keyIDs.Values)

{

UnregisterHotKey(hWnd, key);

GlobalDeleteAtom(key);

}

}

public bool PreFilterMessage(ref System.Windows.Forms.Message m)

{

if (m.Msg == 0x312)

{

if (OnHotkey != null)

{

foreach (UInt32 key in keyIDs.Values)

{

if ((UInt32)m.WParam == key)

{

OnHotkey((int)m.WParam);

return true;

}

}

}

}

return false;

}

}

}

2、在窗体中创建过程,并在加载时间中写入代码,完整代码如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace WindowsFormsApplication1
  10. {
  11. public partial class Form1 : Form
  12. {
  13. public Form1()
  14. {
  15. InitializeComponent();
  16. }
  17. public void OnHotkey(int HotkeyID) //alt+z隐藏窗体,再按显示窗体。
  18. {
  19. if (HotkeyID == Hotkey.Hotkey1)
  20. {
  21. if (this.Visible == true)
  22. this.Visible = false;
  23. else
  24. this.Visible = true;
  25. }
  26. else
  27. {
  28. this.Visible = false;
  29. }
  30. }
  31. private void Form1_Load(object sender, EventArgs e)
  32. {
  33. Hotkey hotkey;
  34. hotkey = new Hotkey(this.Handle);
  35. Hotkey.Hotkey1 = hotkey.RegisterHotkey(System.Windows.Forms.Keys.Z, Hotkey.KeyFlags.MOD_ALT); //定义快键(alt+z)
  36. hotkey.OnHotkey += new HotkeyEventHandler(OnHotkey);
  37. }
  38. }
代码语言:javascript
运行
AI代码解释
复制
     

回答

成为首答用户。去 写回答
相关文章
Python日志输出——logging模块
http://blog.csdn.net/chosen0ne/article/details/7319306
bear_fish
2018/09/20
1.2K0
ESP32+输出功能
ESP32 一共有三个 UART 通讯接口,设备号从 0~2,即 UART0,UART1,UART2。这三个串口的管脚不 是固定的,是可以重映射到任意的 IO 口的。 ESP32 的 BOOT 程序把 UART0 用于程序下载,LOG 输出,实验 hello world 的 LOG 就是从 UART0 输出的。在 BOOT 程序里,把 UART0 映射到 IO1(RX0)和 IO3(TX0)上。
云深无际
2021/01/18
1K0
C# 控制台应用程序输出颜色字体[更正版]
首先感谢院子里的“yanxinchen”,之前的方法是通过c#调用系统api实现的,相比之下我的有点画蛇添足了,哈哈。 最佳解决方案的代码: static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Hello, color text!"); Console.ForegroundColor = ConsoleColor.Red; Cons
磊哥
2018/05/09
2.1K0
C# 控制台应用程序输出颜色字体[更正版]
lvds接口类型_LVDS输出
这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。
全栈程序员站长
2022/11/17
2.3K0
lvds接口类型_LVDS输出
MiniFramework新增了图片验证码输出和校验功能
今天为 MiniFramework 新增了一个名为 Captcha 的类,用于图片验证码的输出和校验。
魏杰
2022/12/23
2800
C# 如何写 DEBUG 输出
经常在代码中,需要使用 DEBUG 来输出一些奇怪的东西来进行测试。但是输出的窗口只有一个,如果有一个逗比在不停输出,那么就会让输出窗口看不到自己的内容。
林德熙
2022/08/04
9630
C#格式化输出(记录)
int a = 12345678; //格式为sring输出 Label1.Text = string.Format("asdfadsf{0}adsfasdf",a); Label2.Text = "asdfadsf"+a.ToString()+"adsfasdf"; Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",a);//asdfadsf¥1,234.00adsfasdf Label2.Text = "asdfadsf"+a.ToString("C
owent
2018/08/01
7510
C# 如何写 DEBUG 输出
经常在代码中,需要使用 DEBUG 来输出一些奇怪的东西来进行测试。但是输出的窗口只有一个,如果有一个逗比在不停输出,那么就会让输出窗口看不到自己的内容。
林德熙
2018/09/18
8580
C# 简单日志文本输出
第一种  直接文件IO流写日志文件 using System.IO; public static void WriteLog(string strLog) { string sFilePath="d:\\"+DateTime.Now.ToString("yyyyMM"); string sFileName = "rizhi" + DateTime.Now.ToString("dd") + ".log"; sFileName = sFilePath+ "\\"+sFileName; //文件的绝对
庞小明
2018/04/16
3.2K0
单片机|I/O输出功能
输出功能是单片机数字控制的最基础功能。I/O是input/output的缩写,即输入输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。
算法与编程之美
2019/11/14
7040
DC电源模块在稳定电压输出的表现有哪些?
DC电源模块是一种重要的电源设备,它可以将来自交流电源的电能转化为所需的直流电能,为各种电子设备提供安全、稳定的电源。在应用过程中,稳定的电压输出是DC电源模块最重要的特性之一。下面将从多个方面介绍DC电源模块在稳定电压输出方面的表现。
河北稳控科技
2023/08/31
1590
DC电源模块在稳定电压输出的表现有哪些?
在SQL Server中保存和输出任意类型的文件
我们可以把任意类型的文件保存到SQL Server中,在进行例子之前,先建立测试用表格,TestFile.sql:
Java架构师必看
2021/03/22
1.1K0
python数据类型,格式话输出
 一.程序交互 name = input(“你的名字是:”) #用户输入,输入的任何东西都存储成str(字符串类型)的形式 二.注释的重要性   以后动辄几千行代码的时候,回过头再去看的时候,发现自己都看不懂了,在工作中还会大家一起合作完成代码,不写注释的话,更难以交流了。 单行注释直接在句首写上#就好了 多行注释可用快捷键ctrl+/,或者用三个引号括起来''' 99999999                          12345789                      
py3study
2020/01/19
1.3K0
servlet向页面输出js弹窗无效的解决方案
5、重点 ---- 必须在结尾处必须调用 out.flush(); 代码,窗口才能实现,不然提示弹窗无效 
静谧星空TEL
2021/04/27
4.2K0
c++ typeid().name()输出变量类型
头文件:#include<typeinfo> 在上头文件中定义了typeid()操作符可以输出变量的类型。
lexingsen
2022/02/24
1.5K0
c++ typeid().name()输出变量类型
如何更好的输出应用日志
日志作为应用故障排查的一个重要利器,是应用开发中的重要一环。但是日志如何打印、打印那些信息却没有一个非常好的规范,本文根据自己多年开发经验,总结出一些日志打印的好的实践。
yaxin
2023/01/05
1.7K0
如何更好的输出应用日志
C# 控制台输入输出
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:C# 控制台输入输出 ---- C# 控制台输入输出 1.输入 1.1 Console.ReadLine() 1.2 Console.ReadKey() 1.3 Console.Read() 2.输出 2.1 Console.WriteLine() 2.2 Console.Write() ---- C# 中有五
小嗷犬
2022/11/15
1.5K0
JavaScript时间个性化输出功能
/ 1、< 60s, 显示为“刚刚” 2、>= 1min && < 60 min, 显示与当前时间差“XX分钟前” 3、>= 60min && < 1day, 显示与当前时间差“今天 XX:XX” 4、>= 1day && < 1year, 显示日期“XX月XX日 XX:XX” 5、>= 1year, 显示具体日期“XXXX年XX月XX日 XX:XX”/ function timeFormat(time){ var date = new Date(time), curDate = n
用户1503405
2021/09/23
4110
java 输出_java怎么输出
java控制台输出由print( ) 和 println( )来完成最为简单。这两种方法由rintStream(System.out引用32313133353236313431303231363533e78988e69d8331333365643661的对象类型)定义。尽管System.out是一个字节流,用它作为简单程序的输出是可行的。因为PrintStream是从OutputStream派生的输出流,它同样实现低级方法write(),write()可用来向控制台写数据。PrintStream 定义的write( )的最简单的形式如下:
全栈程序员站长
2022/09/07
2.8K0
点击加载更多

相似问题

希望腾讯会议增加关闭/打开声音输出功能?

01K

TOA 这下就尴尬了! 用不了?

21.7K

重装系统后,就找不到主机了?

2559

如何从IPython Notebook中的日志记录模块获取输出?

2945

禁用输出缓冲?

2291
相关问答用户
某公司 | 程序员擅长1个领域
擅长2个领域
新浪微博 | 高级总监擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档