Windowsを自動化 - EventGhost便利

Posted by nanki Wed, 12 Aug 2009 13:40:00 GMT

eventghost

InternetExplorerのテスト用に飼っている、VMWare上のWindowsに新たな使命が課せられた。 携帯シミュレータでのテストだ。

ただ、シミュレータは3キャリア分あって、操作方法も全部違うので、これからげんなりすることを思うとげんなりする。

そこで、とりあえず、一発でreloadができるようにならないか方法を探してみた。

ページのリロード

EventGhost というのがあるらしいので、ダウンロードする。 ページのリロードは、指定した名前のウィンドウを探して、F5キーを押すことで実現。これを、3キャリア分設定。(ソフトによってキーは違う)

あっさりとできてしまった。

キャプチャ

それだけだと面白くないので、リロードした後、画像をキャプチャするようにした。 IrfanViewには、起動オプションでアクティブなウィンドウの内容をキャプチャする機能があるらしいので、それを使う。 起動オプションこんな感じ。

i_view32.exe /capture=3 /convert="\\.host\Shared Folders\Public\softbank.png"

ウェブサーバ

さらに、プラグインを見てみると、WebServerというのがある。 このプラグインを追加すると、指定したポートでHTTPサーバが起動し、指定したフォルダの内容が見られるようになる。

さらに、クエリーストリングに、HTTP.reload という文字列をつけてGETなどすると、同じ名前のイベントが発生して、アクションをトリガーできるようになるらしい。

そんなわけで、最終的にスクリーンショットのような構成になり、Safariから、http://192.168.1.1/?HTTP.reload などとすると、リロードしてスクリーンショットが見られるようになった。 (スクリーンショットが撮られるまでにはタイムラグがあるので、javascriptで定期的に画像をリロードする)

ウェブサーバ機能はかなり便利。

問題点

  • リロードの終了を検知できないので、2秒待つ、みたいなことをしないといけない。
  • アクティブなウィンドウをキャプチャするので、排他的にしか処理できない。
参考:

Posted in ,  | Tags  | no comments | no trackbacks

chm.rbのバグ?

Posted by nanki Tue, 11 Aug 2009 13:54:00 GMT

とあるchmファイルをWindowsで見ていて気がついたのだが、一つのキーワードに複数のドキュメントが割り当てられている場合がある。

同じファイルを、Macで見ると、最初のコンテンツしか表示されない。

調べてみると、chmlib のRuby bindingである chm が原因らしい。

そもそも、chmのインデックスは下記のような形式のドキュメントになっていて、chmの中の、chm.rbでこれをパースしているのだが、キーワードが複数のドキュメントに対応する場合が想定されていないようだ。

…
<li><object type="text/sitemap">
  <param name="Name" value="animal">
  <param name="Name" value="dog">
  <param name="Local" value="dog_doc">
  <param name="Name" value="cat">
  <param name="Local" value="cat_doc">
</object>
…

普通の感覚ではこれを見ても一番上のキーワードが下の方まで有効だと思えないのだが…

あと、目次(Topic)を読むところが、case-sensitiveになっていたので、目次が取れていなかった。

コミットしてから気がついたけど、ゴミが…

参考:

Posted in ,  | Tags ,  | no comments | no trackbacks