为了账号安全,请及时绑定邮箱和手机立即绑定

Go/Golang 试图通过系统调用获取窗口信息。

Go/Golang 试图通过系统调用获取窗口信息。

Go
狐的传说 2021-06-29 13:53:28
语境:我从事 UI/R&D 开发(原型设计等)已有 20 多年,刚刚开始服务器/后端开发。我对 Go 非常陌生 - 不到 2 个月 - 并且 1) 运行了大部分 GoByExample 和 2) 在 Amazon EC2 实例上设置了一个原始的、工作的 Web 服务器。我用另一种语言创建了一个 UI,它为另一个 3rd 方应用程序提供了一个 HUD(平视显示器)——一个产生多个窗口的游戏。(想想在多个窗口中运行的多个扑克桌。)我将 HUD 连接到我创建的 Go 客户端。由于第一语言的限制,我使用 Go 来获取操作系统信息。我想继续使用 Go,因为我真的很喜欢它。我在 Windows 7 机器上。目标:大图:当用户移动窗口时,我希望 HUD 随之移动。为此,我需要有关 WindowText 以“Game”开头的主窗口的信息。理想的情况是这样的:windows: [ { windowHwnd:hwnd, windowText:windowText, windowX:x, windowY:y, windowWidth:width, windowHeight:height },...{ windowHwnd:hwnd, windowText:windowText, windowX:x, windowY:y, windowWidth:width, windowHeight:height } ]我采取的步骤:我已经抓取并修改了 github.com/AllenDang/w32,我认为它格式化了 Go 的系统调用。当我需要 user32.go 中未列出的函数时,我会添加它。尝试使用 GetForegroundWindow 和 GetWindowText 与结果,然后 GetWindow( hwnd, previous ) 只是演练一切通读:系统调用文档(http://golang.org/pkg/syscall/)系统调用/dll_windows.go系统调用/env_windows.go系统调用/exec_windows.go系统调用/syscall.go系统调用/系统调用_windows.go系统调用/系统调用_windows_386.go系统调用/系统调用_windows_amd86.go系统调用/系统调用_windows_test.go系统调用/zsyscall_windows_386.go系统调用/zsyscall_windows_amd86.go系统调用/ztypes_windows.go系统调用/ztypes_windows_386.go系统调用/ztypes_windows_amd86.goWindows 开发中心的每个潜在窗口函数搜索 StackExchange、谷歌、DuckDuckGo我可以看到有一些东西(TestEnumWindows)runtime/syscall_windows_test.go 中的第 125 行(http://golang.org/src/pkg/runtime/syscall_windows_test.go)虽然这个函数在 syscall_windows_test.go 中不存在问题:更好的解决方案?由于我的无知,我很容易忽略一些方法,例如: GiveGeoffreyExactlyWhatHeWants()我在正确的球场吗?这在 Go 中可行吗?正确的方向是什么?这是其他人需要的东西吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 495 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信