我正在创建一个剪贴板监视器,它将捕获剪贴板中的更改,然后将剪贴板仅转换为纯文本。因此,这工作正常,但我真的无法弄清楚为什么我的应用程序在提升的应用程序(例如管理员命令提示符或任务管理器)内时不挂接键盘。它只是简单地忽略了我的按键!?
我已经尝试通过这篇文章“手动”使用键盘,如何停止在 C# 中进一步处理全局热键,但现在我正在尝试另一个名为https://github.com/gmamaladze/globalmousekeyhookglobalmousekeyhook
的项目
我在这两个中都遇到了同样的问题解决方案。
我的问题是,“如何ALT+H
从已提升的应用程序中挂钩并获取应用程序中可见的组合键”?它似乎在其他任何地方都可以正常工作。
此代码或多或少来自以下示例代码globalmousekeyhook
:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Gma.System.MouseKeyHook;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Define the global hotkey combination
var altH = Combination.FromString("Alt+H");
// 2. Define actions
Action actionAltH = () => { Console.WriteLine("You Pressed ALT+H"); };
// 3. Assign actions to key combinations
var assignment = new Dictionary<Combination, Action>
{
{altH, actionAltH}
};
// 4. Install listener
Hook.GlobalEvents().OnCombination(assignment);
}
}
}
我的应用程序没有提升 - 它只是在启动时正常运行。
我在这里想念什么?谁能指出我正确的方向?:-)