hirax.net::inside out::2008年11月15日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2008年10月 を読む << 2008年11月 を読む >> 2008年12月 を読む

2008-11-15[n年前へ]

Ruby版 Win32GuiTest クラスを作りました。 

 (この記事の続きが「続:Ruby版 Win32GuiTest クラスを作りました。」)になります。

 Ruby版 Win32GuiTest クラスを作りました。PerlのPerlのWin32-GuiTestと同じような機能を集めたものです。つまり、MoonWolf さんのWin32::GuiTestと同じようなものです。

 夕方からPerlのWin32::GuiTestの関数リストを見て、それと同じようなものををつらつら書いていき、私自身が使いそうにない関数・機能が続き始めた辺りでやる気が下がってきたので、とりあえずソースコード(guiTest.rb)をここに置いておくことにします

 (コードにも入っていますが)サンプルコードは下記のようになります。これは、「ワードパッドを立ち上げて、ウィンドーを全面に持ってきて、適当に文字を入力して、その文字をコピーして数回ペーストした後に、保存せずに終了する」という具合に動きます('RichEdit20W'の部分は、クラス名からの子ウィンドゥ検索を示すために入れたので、実際にはなくても構わない部分だと思います)。

  gui=Win32GuiTest.new
  gui.run('wordpad.exe')
  sleep 2
  gui.setForegroundWindow(
    gui.findWindowLikeName('ワードパッド').first[0] )
  gui.setFocus( 
    gui.findWindowLikeClass('RichEdit20W').first[0] )
  gui.sendKeys('This is a sample.{ENTER}',1)
  gui.sendKeys('^a^c')
  5.times do |i|
     gui.sendKeys("#{i} ...{ENTER}")    
     gui.sendKeys('^v')    
  end
  gui.sendKeys('%f',2)    
  gui.sendKeys('x',1)    
  gui.sendKeys('n',1)
 VMware上で作業をしていることもあり、動作未確認の部分(マウス操作・ホイール操作)もあるのですが、「キーボード・マウス・ウィンドウを操作する」というGUIの基本三点セット処理にはそこそこ使える・・・と良いな、と思っています。

DLWin32API