Win32::GuiTest

by MoonWolf (moonwolf@moonwolf.com)

Download

ToDo

どんな機能が必要か

  1. ウィンドウを探す。
    • タイトル,ウィンドウクラスで目的のウィンドウを探す。
      • EnumWindows,EnumChildWindowsが出来ているのでFindWindowLikeはすぐに出来そう。(2002/02/15)
  2. フィールド(テキストボックス等)を探す。
    • フィールドのテキストで探す
    • TABキーを押して移動
      • keybd_event(VK_TAB... でいけそう。keybd_eventは実装済み。(2002/02/15)
    • アクセラレータ(Alt+?)で移動
  3. データを入力する。
    • フィールドをアクティブにしてキー入力
      • 漢字はどうしよう? WM_IME_CHARで出来るかも?WM_IME_COMPOSITIONは大変そう。
    • ドロップダウンリスト
  4. 処理実行
    • ボタン or メニューをクリック
    • ショートカットキーを入力
  5. 結果を確認する。

履歴

[2002/02/25]

[2002/02/18]

[2002/02/15]

サンプル

ウィンドウリスト(再帰)

#!/bin/env ruby -Ks
require "win32/guitest"
include Win32::GuiTest

def listchild(win)
  puts "#{getParent(win.hwnd)}\t#{win.hwnd}\t#{win.getClassName}\t#{win.getWindowText}"
  win.enumChildWindows {|w|
    listchild(w)
  }
end

enumChildWindows(createWindow(0)) {|win|
  listchild(win)
}


The RWiki