Sendkeys

2008年11月07日 01:12

 まだ開設一週間くらいなのに、こんなサンプルばかり載せていると訪問者がいなくなってしまうのではないかと心配してしまうのですが、このエントリは息抜き程度に読んでもらえるとうれしいです。


 追加のサーバーは起動時にパスワードを聞かれるのでどうにかしたいと考えた事がありました。
IDファイルが作られたあとにサーバーIDのパスワードを解除すればいいだけの話なのですが、こんなWSHスクリプトを書いてみた事があります。

以下のようなVBSファイルをドミノのプログラムディレクトリに入れておくと、起動したら何も考えずに「password」と言うパスワードを送り込んでくれます。

StartServer.vbs
Dim WshShell
set WshShell = CreateObject("WScript.Shell")
WshShell.Run("nserver.exe")
WScript.Sleep(100)
WshShell.AppActivate("Lotus Domino Server")
WshShell.SendKeys("password")
WshShell.SendKeys("{Enter}")

 パスワードがテキストファイルに保存されることになるので、セキュリティ上は重大な問題があるので、実環境で使う人はいないと思うのですが何となくこの人間の操作まで代理してくれるような感じがするSendkeys メソッドと言うのはとても魅力的に映って色々遊んでいました。

こんな感じでノーツを起動して、データベースを一個開いてから閉じる、と言う簡易なテストツールに使うことも出来る!とか思ったりしました。

StartNotes.vbs
※ 斜体にしたところは環境に応じて適切な値を入れて下さい。
Dim WshShell
set WshShell = CreateObject("WScript.Shell")
WshShell.Run("notes.exe")
WScript.Sleep(8000)
WshShell.AppActivate("Lotus Notes")
WshShell.SendKeys("password")
WshShell.SendKeys("{Enter}")
WScript.Sleep(4000)
WshShell.SendKeys("^o")
WshShell.SendKeys("%i")
WshShell.SendKeys("mailserver")
WshShell.SendKeys("{Enter}")
WshShell.SendKeys("%f")
WshShell.SendKeys("mail/xxxx.nsf")
WshShell.SendKeys("%o")
WScript.Sleep(10000)
WshShell.SendKeys("%(fx)")

Windowの文字とかオブジェクトを取ったりエラーハンドリングをして精度を高められる有償のテストツールみたいにはいかないのですが、ちょっとプログラムっぽくないノリでソフトウェアを動かしている感じが楽しくて色々触ってみたりしました。

とりあえず書いてみたけど、やっぱりNotes技術者の役には立たないですね。。。



コメント

  1. なにがし | URL | ObdDcnPg

    省エネ

    R5 クライアントの時に見たことのないデータベースを何百個か渡された事があって、それらを Teamstudio Analyzer で設計出力する時に PC の見張り番をしたくなくて使ったことがありました。
    確か当時は、Analyser 用のスクリプトライブラリが提供されていなくて、1つの設計書きだしが終わったら次の DB を選んで、ダイアログボックスに値を放り込んで OK ボタンを SendKyes で押す的なプログラムを作りました。
    2,3個連続で起動出来ているのを確認して帰宅し、朝出社してみたら10個目くらいで Notes がハングしていたり、フォーカスが Notes から外れてキーの空打ちをしていたりで、結局2時間おきくらいに見回りが必要な半自動プログラムで終わったのを思い出しました。

  2. 長島 | URL | WAwUqL6k

    コメントありがとうございます

    なにがしさん

    初めまして。確かにAnalyzerって重いので自動化するのは大変そうですね。
     私も実はNotesの終了時の問題調査のためにNotesを起動してDBを開いて終了する、と言う事を繰り返し行わないといけない事があって、低いマシンスペックじゃないと起きないのでRobotのようにヘビーなテストツールも入れられず途方に暮れた事があるのですが、そのときはUWSCというツールを使いました。
    http://www.uwsc.info/

    それでも色んなエラーハンドリングを入れないといけなかったのでまともに動くようになるのに1週間近くかかった上に、やはり半日位すると止まってしまう事があって半自動までしか実現出来ませんでしたが。。。

    この辺はやっぱり真面目にやろうとすると難しいですね。。

コメントの投稿

(コメント編集・削除に必要)
(管理者にだけ表示を許可する)

トラックバック

この記事のトラックバックURL
http://hnagasim.blog8.fc2.com/tb.php/11-e5aca259
この記事へのトラックバック


最新記事