问题标签 [registerhotkey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3416 浏览

c# - 注册已使用的热键

背景:

我想在全球范围内收听热键序列(Ctrl+Alt+Left),所以我正在使用:

这适用于许多其他热键序列,例如Ctrl+Alt+PageUp,Ctrl+Alt+PageDown等...但是特别是会出现问题Ctrl+Alt+Left


问题:

在一台计算机上,它工作得很好,就像任何其他热键序列一样,但在另一台Ctrl+Alt+Arrow用于旋转屏幕的计算机上,它无法注册热键(即返回零并且没有回调到窗口的处理)。

MSDN 说:如果为热键指定的击键已被另一个热键注册,则 RegisterHotKey 失败。

无论如何,我都希望能够注册该热键序列,并且如果需要,覆盖它。我当然希望屏幕保持不旋转,至少只要我的程序正在运行。

更改热键序列并不是一个真正的选择,因为其他计算机可能有其他热键序列也可能导致故障。


问题:

Ctrl+Alt+Left作为屏幕旋转热键和作为保存热键有什么区别Ctrl+S,导致一个失败而另一个失败?(也许是因为一个是全局热键,第二个是上下文?)

是否可以完全覆盖热键?这是一个好主意吗?

最重要的是,我如何确保我的热键会被注册?

0 投票
2 回答
2230 浏览

c# - 如何防止 RegisterHotKey 停止默认键操作?

我正在使用 Window 的 API RegisterHotKey函数在特定应用程序打开并获得焦点时按下 F2 键来运行宏。

问题是,这会阻止 F2 键用于其他应用程序,例如 Excel。

如何防止RegisterHotKey停止默认操作?

我有一个系统托盘应用程序,它使用这个答案HotKeyManager中的类来注册热键。当按下特定键(例如 F2)时,我使用 Windows API 检查闭源应用程序是否已打开并获得焦点,如果是,则向其发送一系列SendKeys

0 投票
1 回答
1442 浏览

c# - 在 C# 中注册多个全局热键

可能重复:
使用 RegisterHotKey 注册多个热键

对不起,但我真的用谷歌搜索了很长时间,我没有得到任何清晰的代码!

我想知道如何使用以下方法在 C# 中注册全局热键:

最重要的是如何捕获多个热键。

可以说我想要Ctrl+E击键来做一些与Ctrl+R应该做的不同的事情。

0 投票
1 回答
294 浏览

internet-explorer - 注册热键以模拟鼠标单击 dll Web 应用程序中的对象

免责声明

我绝不是网络技术方面的专家,我也不太熟悉 .asp、.dll 和其他 MS 恶作剧,所以在下面发现奇怪/不合逻辑(但希望足够有意义)的构造时不要感到惊讶。

背景

我正在和我的同事一起开发仅 IE 的 dll 打包的 .aspx IFRAMEd CRM 应用程序。那(应该)意味着它只能通过 IE 访问,并且 url 的形式为:http://internal-ip/foo/bar/something.dll?FOO=BAR,并且页面显示由其他 HTML 背景项和两个 IFRAME 组成,包含重要的应用程序内容。作为 CRM,它需要每天数百次重复操作(插入新客户、更新客户、查找有关他们的各种信息等)。

问题

这些操作中的每一个都需要通过软件进行多次复杂的菜单导航,以便最终单击相关菜单项并等待所需页面加载(如此复杂,估计它们会消耗超过 75% 的总时间来完成一种行为)。

主意

为了加快速度(从而提高效率),我想出了一个想法,以某种方式实现键盘快捷键,其作用与单击菜单项的作用相同。这个想法似乎很简单,但我不知道从哪里开始。

尝试的解决方案

如果它是一个标准网页,我会创建一个当我按下 ctrl+something 时执行 $("#menu_item").trigger("click") 的greasemonkey 脚本,但我不能这样做有两个原因:

  1. 没有油猴(Trixie 不工作),并且
  2. 无法通过它们检查任何对象或 DOM 导航,因为它们在 IFRAME 中,所以这是我使用 firebug lite 所能达到的最远和最深的地方。

为了解决第一个问题,我设法使用 IE Tab 2 用 Firefox 打开了应用程序,果然,应用程序可以工作,但是 Greasemonkey 脚本不能——甚至是一个简单的 alert("a") 脚本页面加载不执行(可能是因为页面包含在 .dll 中)。

结论

所以在我看来,我将无法按照我原来的计划推进,那么我还有什么可以尝试的吗?我对应用程序所在的远程服务器的访问权限有限,只能进入文件高峰期,希望能看到一些有用的东西,但这太费时了,而且最终可能没有成果。

我希望有一个足够简单的解决方案(因为这应该是一个非常常见的功能)来避免翻阅数百个文件或学习如何对 .dll 进行逆向工程。有没有人遇到过类似的情况,如果没有,您将如何尝试实现这一目标?

0 投票
1 回答
494 浏览

c# - 如何在 C# 中定义鼠标手势

我想在 C# 中使用以下属性定义鼠标手势:

  1. 在具有相同手势的其他应用程序之前触发事件
  2. 根据不同的用户鼠标速度定义不同的手势。

那么最好的解决方案是什么?

0 投票
1 回答
343 浏览

c# - 全局热键分配窗口

我已经构建了一个具有主窗口的 WPF 应用程序

我想按 Ctr+Alt+1 激活/最大化窗口

然后我在窗口上有一个 9 选项卡式面板

我想分别用 1-9 的热键访问每个选项卡(当主窗口处于活动状态时),当窗口不活动并最大化时,我想删除热键

在每个选项卡上我有 9 个按钮,然后我希望能够在选项卡处于焦点时再次使用热键 1-9 激活按钮单击。

我发现了一篇文章http://www.codeproject.com/Articles/160441/Using-C-Interfaces-to-Make-Applications-Resilient它提供了一种生成类热键的好方法,但我正在进入试图实现这个功能真是一团糟。

我应该怎么办?(我不想使用 Autohotkey 顺便说一句)

有没有比上面的链接更好的方法来实现这一点?

0 投票
1 回答
1230 浏览

c# - User32.dll:未找到 RegisterHotkey

我最近使用 Visual Studio 2010 在 Visual C# .NET 2010 中作为 Windows 窗体应用程序制作了一个程序。该程序通过 user32.dll 函数“RegisterHotkey”使用全局热键。一切正常。当按下注册的热键时(例如),我能够显示一个 MessageBox。然后,今天,在 Visual Studio 中出现一些奇怪的错误(与 Hotkey 无关)(实际上它只是一个未加载的图像)之后,RegisterHotkey 功能不再起作用。

我没有更改热键代码中的任何内容。

当我在 Visual Studio 中调试时,我没有任何异常。通过断点,我发现代码在 RegisterHotkey 函数处停止。当我从项目的“调试”文件夹中执行 .exe 文件时,程序显示一个错误,指出“在“user32”DLL 中找不到“入口点“RegisterHotkey”。

这很奇怪,因为它一直有效。

为了检查我的项目或代码是否是原因,我创建了一个新的 Windows 窗体应用程序并输入了代码:

这产生了同样的错误。尝试调用 RegisterHotkey 函数时发生错误。这次我尝试输入尽可能少的代码。

该表单没有控件,它应该在其 Load 事件中注册一个热键。

我的问题是:谁能告诉我为什么突然找不到RegisterHotkey?我在哪里犯错了吗?我该怎么做才能让它再次工作?

我尝试导入“user32.dll”而不是“user32”,但除了错误消息中的文本外,它没有改变任何内容。在那里,“user32”被“user32.dll”取代。

编辑:我不知道它是否相关,但我使用 Windows 7 Professional 64 位版本和 .NET 框架 4.0(不是客户端配置文件)

0 投票
1 回答
5862 浏览

c# - 用 Sendkeys 模拟 CTRL+C 失败

我对 Sendkeys 有一个奇怪的问题,我的应用程序基本上应该做的是,当我按下ALT+时J,它会模拟CTRL+C操作(在任何窗口上)以复制一些突出显示的文本,但是CTRL+C模拟不起作用。

0 投票
1 回答
289 浏览

vb.net - vb.net 注册热键“大写锁定”

是否可以将“CapsLock”注册为热键而不是注册 2keys?我不想使用 ctrl+key、alt+key。我想切换“CapsLock”来开始/中断我的循环。就像我打开大写锁定一样,循环将运行等等。我解决了这个问题,制作了一个计时器并检查大写锁定的键状态是打开还是关闭。但我不喜欢它,因为我的应用程序在每次计时器滴答声时切换大写锁定时一直显示我发出的通知气球消息。所以我希望有人可以帮助我。

我使用这个代码来注册我的一些热键,这可以编辑“CapsLock”吗?

谢谢

0 投票
1 回答
1014 浏览

c# - 多个热键不适用于 alt+ 数字键

我对此进行了编码,并且它更早地工作了!alt+1 和 alt+2 的全局热键。当我关闭我的项目时,我不小心按下了一个键或其他东西,现在由于某种原因只有 alt+1 正在工作,并且没有其他 alt+ 数字的组合......

有人有想法么?