5

読んでくれてありがとう。

環境:

  • 私は 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)

質問:

  • より良い解決策?私の無知では、次のようなメソッドを見落としがちです: GiveGeoffreyExactlyWhatHeWants()
  • 私は正しい球場にいますか?
  • これはGoで実行できますか?
  • 向かうべき正しい方向は何ですか?
  • これは他の誰かが必要とするものですか?
4

1 に答える 1