我正在编写一个应用程序,将利用Win32 API WH_KEYBOARD钩子,以便在没有焦点的情况下激活(即在前景中显示)。回调函数自然是函数指针(类型为HOOKPROC)。 WH_KEYBOARD和WH_KEYBOARD_LL的许多文档都说回调必须驻留在DLL中,而不能直接在EXE中,但我发现在Windows XP及以上版本中并非如此,因此我认为这是一个历史问题。
该应用程序是用Go编写的。 我知道(并已经为之做出了贡献)github.com/AllenDang/w32,但我没有看到任何可以用于处理函数指针的内容。由于goroutines的结构,这是否可能?我知道从Go调用C很简单,但对于这样的回调函数指针,该怎么办?
该应用程序是用Go编写的。 我知道(并已经为之做出了贡献)github.com/AllenDang/w32,但我没有看到任何可以用于处理函数指针的内容。由于goroutines的结构,这是否可能?我知道从Go调用C很简单,但对于这样的回调函数指针,该怎么办?
目前我的方法是编写一个EXE程序,通过标准输出发送消息,将其单独编译,使用go-bindata
进行包含,并在运行时将其写入临时文件并执行,同时一个goroutine监视该进程的标准输出。这让我感到非常不舒服。请告诉我是否有更好的方法,而不需要使用外部进程和可怕的IPC技巧。