感謝您閱讀和您可能有任何意見。Go/Golang試圖通過系統調用獲取窗口信息。 (如在EnumWindows等)
語境:
- 我是一個UI/R & d DEV(成型等)超過20年,剛開始的服務器/後端開發。
- 我對Go非常陌生 - 不到2個月 - 並且1)遍歷GoByExample的大部分內容,並且2)在Amazon EC2實例上設置一個原始的正常運行的Web服務器。
- 我創建了另一種語言的用戶界面,爲另一個第三方應用程序提供HUD(平視顯示器) - 這是一款產生多個窗口的遊戲。 (想想在多個窗口中運行多個撲克桌。)
- 我將HUD連接到了我創建的Go客戶端。
- 由於第一語言的限制,我使用Go來獲取操作系統信息。
- 我想繼續使用Go,因爲我非常喜歡它。
- 我在Windows 7機器上。
目標(S):
- 大畫面:當用戶移動的窗口,我想HUD與移動它。
- 爲此,我需要關於WindowText以「遊戲」開頭的主窗口的信息。
理想的做法是這樣的:
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,以前的),只是演練一切
- 通讀:
- 系統調用文檔(http://golang.org/pkg/syscall/)
- 系統調用/ dll_windows.go
- syscall/env_windows.go
- syscall/exec_windows.go
- syscall/syscall.go
- 系統調用/ syscall_windows.go
- 系統調用/ syscall_windows_386.go
- 系統調用/ syscall_windows_amd86.go
- 系統調用/ syscall_windows_test.go
- 系統調用/ zsyscall_windows_386.go
- 系統調用/ zsyscall_windows_amd86。去
- 系統調用/ ztypes_windows.go
- 系統調用/ ztypes_windows_386.go
- 系統調用/ ztypes_windows_amd86.go
- 在Windows開發人員中心的每一個潛在的窗函數
- 搜索StackExchange,谷歌,DuckDuckGo
- 我可以看到有什麼東西(TestEnumWindows)
- 線125在運行時/ syscall_windows_test.go(http://golang.org/src/pkg/runtime/syscall_windows_test.go)
- 雖然這個功能不會syscall_windows_test.go
問題存在:
- 更好的解決方案嗎?在我的無知中,我可以很容易地忽略一些方法,如:GiveGeoffreyExactlyWhatHeWants()
- 我是否在正確的球場?
- 這在Go中可行嗎?
- 什麼是正確的方向?
- 這是別人需要的東西嗎?
正想發佈另一個鏈接到https://code.google.com/p/go-wiki/wiki/WindowsDLLs我希望有答案,但亞歷克斯可能會指出我在正確的方向! – Geoffrey