gpt4 book ai didi

c# - 如何在 Mac 上使用 GTk2 C# Visual Studio 实现全局键盘 Hook ?

转载 作者:行者123 更新时间:2023-12-05 06:39:59 25 4
gpt4 key购买 nike

这不是一个重复的问题。我已经阅读了很多使用 C# 的低级/全局键盘 Hook 的实现,但它们都没有为 MacOSX Visual Studio 提供解决方案。基本上,我有一个 GTK2 .net MAC 应用程序。我希望(应用程序)在按下空格键时检测应用程序是否处于焦点状态。我已经使用 C#(适用于 Mac)在控制台应用程序上成功实现了一个简单的键盘 Hook ,但是当应用程序未处于焦点时,我的控制台应用程序不会检测到全局键盘事件。即使我当前的应用程序不在焦点上,我也希望它在按下空格键时检测到它。我该怎么做呢 ?这是我的 MainWindow.cs

using System;
using Gtk;
using System.IO.Ports;
using System.Threading;

public partial class MainWindow : Gtk.Window
{
// MySQL to fetch visitors number
//Create a MySQL connection




int visitors = 0;





public MainWindow() : base(Gtk.WindowType.Toplevel)
{
Build();
}

protected void OnDeleteEvent(object sender, DeleteEventArgs a)
{
Application.Quit();
a.RetVal = true;
}


public void DetectWhenSpaceKeyIsPressed(){
if(//space key is pressed -low level keyboard hook mac OSX){

//I send the data

}


}








}

最佳答案

我已经在 MacOS 中为 .net core 的控制台应用程序实现了这个功能

if (!Console.KeyAvailable) return null;
ConsoleKeyInfo c = Console.ReadKey(true);
switch (c.Key)
{
case ConsoleKey.UpArrow:
//go up
break;
case ConsoleKey.DownArrow:
//go down
break;
... etc
}

关于c# - 如何在 Mac 上使用 GTk2 C# Visual Studio 实现全局键盘 Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43948890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com