繁体   English   中英

如何在 mac 上使用 GTk2 C# Visual Studio 实现全局键盘挂钩?

[英]How do I implement a global keyboard hook using GTk2 C# Visual Studio on mac?

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

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM