`

在窗口中添加全局热键

 
阅读更多

在窗口中添加全局热键

 

Toolkit toolkit = Toolkit.getDefaultToolkit();
		// 注册应用程序全局键盘事件, 所有的键盘事件都会被此事件监听器处理.
		toolkit.addAWTEventListener(new java.awt.event.AWTEventListener() {
			public void eventDispatched(AWTEvent event) {
				if (event.getClass() == KeyEvent.class
						|| event.getID() == KeyEvent.KEY_PRESSED) {
					KeyEvent ke = ((KeyEvent) event);
					IDisplay displayCompoment = null;
					Class cla = null;
					Object obj = null;
					if (ke.getKeyCode() == KeyEvent.VK_F2
							&& ke.getID() == KeyEvent.KEY_PRESSED) {
						try {

							if (hotkeyMap.get("F2") != null) {
								obj = hotkeyMap.get("F2");
							} else {
								cla = Class.forName(config.getProperty("F2"));
								obj = cla.newInstance();
							}
							if (obj != null && obj instanceof IDisplay) {
								displayCompoment = (IDisplay) obj;
								hotkeyMap.put("F2", displayCompoment);
								displayCompoment.showWindow();

							}
						} catch (ClassNotFoundException e) {
							e.printStackTrace();
						} catch (InstantiationException e) {
							e.printStackTrace();
						} catch (IllegalAccessException e) {
							e.printStackTrace();
						}

					} else if (ke.getKeyCode() == KeyEvent.VK_F5
							&& ke.getID() == KeyEvent.KEY_PRESSED) {
						try {
							if (hotkeyMap.get("F5") != null) {
								obj = hotkeyMap.get("F5");
							} else {
								cla = Class.forName(config.getProperty("F5"));
								obj = cla.newInstance();
							}
							if (obj != null && obj instanceof IDisplay) {
								displayCompoment = (IDisplay) obj;
								hotkeyMap.put("F5", displayCompoment);
								displayCompoment.showWindow();

							}
						} catch (ClassNotFoundException e) {
							e.printStackTrace();
						} catch (InstantiationException e) {
							e.printStackTrace();
						} catch (IllegalAccessException e) {
							e.printStackTrace();
						}
					} else if (ke.getKeyCode() == KeyEvent.VK_ESCAPE
							&& ke.getID() == KeyEvent.KEY_PRESSED) {
						if (hotkeyMap.get("F2") != null) {
							displayCompoment = (IDisplay) hotkeyMap.get("F2");
							displayCompoment.closeWindow();
						}
						if (hotkeyMap.get("F5") != null) {
							displayCompoment = (IDisplay) hotkeyMap.get("F5");
							displayCompoment.closeWindow();
						}

					}
				}
			}
		}, java.awt.AWTEvent.KEY_EVENT_MASK);

 

分享到:
评论

相关推荐

    易语言API全局热键源码.rar

    API全局热键是计算机编程中的一个重要概念,它允许程序在不处于活动状态时也能响应特定的按键组合,从而实现快捷操作或特定功能的触发。本压缩包“易语言API全局热键源码.rar”包含了一个使用易语言实现API全局热键...

    WPF 全局热键例子

    在Windows Presentation Foundation(WPF)中,全局热键(Global Hotkeys)是指能够在应用程序的任何窗口或甚至在应用程序不处于焦点时响应特定按键组合的功能。这种技术允许用户通过快捷键执行特定的操作,增强应用...

    QT5 全局热键完整demo

    在QT5中,你可以通过将`QShortcut`对象添加到`QApplication`实例来实现全局热键: ```cpp QApplication::addShortcut(shortcut); ``` 这样,即使你的应用程序窗口不在最前端,快捷键也能正常工作。 在提供的`...

    c#下注册全局热键

    在开发应用程序时,为提高用户体验,经常需要设置全局热键以便用户快速启动某些功能。本文将详细介绍如何使用C#来实现全局热键的功能,并对代码进行深入解析。 #### 二、基础知识 ##### 1. P/Invoke (Platform ...

    vb6全局热键ocx控件

    总的来说,这个VB6全局热键OCX控件提供了一种方便的方式来为应用程序添加全局热键支持,使得用户可以通过自定义的键盘组合来高效地操作软件。通过深入理解并利用这个源码,开发者可以学习如何在VB6中创建和管理...

    VC注册使用系统全局热键

    在Windows操作系统中,全局热键(也称为全局快捷键或系统热键)允许用户通过键盘上的特定组合键来触发程序的特定功能,即使程序没有在焦点窗口也可以响应。在VC++(Visual C++)编程环境中,我们可以利用Windows API...

    C#全局热键

    全局热键,也称为快捷键或系统级热键,是一种能够在任何应用程序中响应特定按键组合的功能,使得用户可以通过键盘快速执行特定操作。在C#编程中,实现全局热键通常需要借助于Windows API(Application Programming ...

    在C#中使用热键隐含窗口

    ### 在C#中使用热键隐含窗口 #### 概述 本文档旨在介绍如何在C#编程语言中实现窗口的隐含功能,并通过热键(快捷键)来进行控制。这种技术可以应用于多种场景,例如当您需要快速隐藏正在运行的应用程序窗口时,或者...

    Qt全局热键,可用于绑定物理按键

    在开发跨平台的桌面应用时,全局热键通常用于提供快速访问功能,如打开主窗口、执行特定操作或切换应用状态。 首先,我们来了解Qt框架。Qt是一个开源的C++图形用户界面应用程序开发框架,广泛应用于Windows、Linux...

    WPF系统全局热键

    在Windows Presentation Foundation(WPF)框架中,实现系统全局热键是为应用程序提供快捷方式,使得用户无需将焦点置于应用程序窗口内,也能通过特定的按键组合执行特定操作。这种功能在许多应用程序中都非常常见,...

    QT第三方库全局快捷键热键.zip

    全局快捷键,或称全局热键,是指能够在应用程序窗口不在焦点时仍然能够响应的键盘组合。这在许多应用中都很有用,例如音乐播放器、文本编辑器,或者系统托盘应用,用户可以通过全局快捷键快速执行特定操作,无需将...

    vc编的全局热键的创建

    在Windows编程中,全局热键(Global Hotkey)是一种能够响应用户特定键盘组合的应用程序功能。在给定的“vc编的全局热键的创建”项目中,我们看到一个简单的VC++应用程序,它实现了对话框界面,并且可以注册和卸载...

    设置全局热键

    4. **设计用户界面**:在`Form1`中,我们可以添加一个选项或设置界面,让用户自定义全局热键。这可以通过添加控件如文本框和按钮,配合事件处理程序来实现。 5. **测试与优化**:最后,对设置的全局热键进行充分的...

    VB全局热键1111111111

    VB全局热键是一种在Visual Basic (VB)编程环境中实现的特殊功能,允许用户通过按下预先设定的快捷键组合来触发程序中的特定事件或操作。在VB应用中设置全局热键可以极大提高用户的交互体验和工作效率,因为用户无需...

    全局热键demo

    在Qt中,我们可以使用`QShortcut`类来创建全局热键。 首先,我们需要包含必要的头文件: ```cpp #include #include ``` 接着,创建一个`QShortcut`对象并指定其激活时应执行的槽函数。例如,如果我们要设置Ctrl+...

    全局热键定义示例[QuickKey.rar]-精品源代码

    全局热键(Global Hotkey)在计算机编程中是一种常见的功能,允许用户通过按下特定的键盘组合来触发程序的特定操作,而无需将焦点放在该程序上。本示例"QuickKey.rar"提供了一组源代码,帮助开发者了解如何在VB...

    在C#中使用热键隐含窗口教程+C#源代码

    在C#编程环境中,开发人员有时需要实现热键功能,以便用户可以通过按下特定组合键来激活或控制应用程序,即使应用程序窗口未处于活动状态。...实践这个教程,你将能够为你的C#应用程序添加便捷的全局热键功能。

    C#全局热键设置与窗体热键设置实例

    本篇文章将详细讲解如何在C#中实现全局热键和窗体热键的设置。 1. **窗体热键设置** 窗体热键是指在当前活动窗体上响应的快捷键。首先,为了使窗体能够捕获到键盘事件,我们需要在窗体的`KeyPreview`属性设置为`...

    VB热键注册(带源码)

    同时,你需要处理WM_HOTKEY消息,这通常是通过在窗体的WndProc方法中添加代码来完成的。 下面是一个简单的示例流程: 1. 首先,声明API函数: ```vb Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As...

Global site tag (gtag.js) - Google Analytics