読んでくれてありがとう。
環境:
- 私は 20 年以上 UI/R&D 開発 (プロトタイピングなど) をしており、サーバー/バックエンド開発を始めたばかりです。
- 私は Go に非常に慣れていません - 2 か月も経っていません - 1) GoByExample の多くを実行し、2) Amazon EC2 インスタンスでプリミティブな動作する Web サーバーをセットアップしています。
- 別のサードパーティ製アプリケーション (複数のウィンドウを生成するゲーム) の HUD (ヘッドアップ ディスプレイ) を提供する別の言語で UI を作成しました。(複数のウィンドウで実行されている複数のポーカー テーブルを考えてみてください。)
- 作成した Go クライアントに HUD を接続しました。
- 最初の言語には制限があるため、Go を使用して OS 情報を取得します。
- 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 の syscall をフォーマットしていると思います。
- user32.go の一覧にない関数が必要な場合は、追加します。
- GetForegroundWindow と GetWindowText を結果とともに使用してから、GetWindow( hwnd, previous ) を使用してすべてをウォークスルーしてみました
- 読み通す:
- syscall ドキュメント ( http://golang.org/pkg/syscall/ )
- syscall/dll_windows.go
- システムコール/env_windows.go
- syscall/exec_windows.go
- syscall/syscall.go
- syscall/syscall_windows.go
- syscall/syscall_windows_386.go
- syscall/syscall_windows_amd86.go
- syscall/syscall_windows_test.go
- syscall/zsyscall_windows_386.go
- syscall/zsyscall_windows_amd86.go
- システムコール/ztypes_windows.go
- システムコール/ztypes_windows_386.go
- システムコール/ztypes_windows_amd86.go
- Windows デベロッパー センターのすべての潜在的なウィンドウ関数
- StackExchange、Google、DuckDuckGo を検索
- 何かがあるのがわかります (TestEnumWindows)
- runtime/syscall_windows_test.go の 125 行目 ( http://golang.org/src/pkg/runtime/syscall_windows_test.go )
- この関数は syscall_windows_test.go には存在しませんが
質問:
- より良い解決策?私の無知では、次のようなメソッドを見落としがちです: GiveGeoffreyExactlyWhatHeWants()
- 私は正しい球場にいますか?
- これはGoで実行できますか?
- 向かうべき正しい方向は何ですか?
- これは他の誰かが必要とするものですか?