uwscスクリプトのブログ

Windowを自動化するフリーソフトUWSC(http://www.h7.dion.ne.jp/)のスクリプトを公開するブログ

全体表示

[ リスト ]

今回はuwscスクリプトを書く際に使用するツールなので、uwscスクリプトを書かない人にはあまり役に
立ちません。

何かのウインドウをCLKITEMで操作する際、
CLKITEM(id,"OK")
でOKボタンを押す、あたりまではヘルプを読めばわかるのですが、CLK_BTN、CLK_LIST、CLK_TAB、CLK_MENU、CLK_TREEVEW、CLK_LSTVEW、CLK_TOOLBAR、CLK_ACCなどの説明を見てもウインドウにある色々な項目の何がリストビューで何がタブなのかさっぱり分からない、という人のために。
また、ウインドウ上のどの項目がCLKITEMで操作可能なのか、このスクリプトで知ることができます。

このスクリプトwindowpicker.uwsを動かして、ウインドウやダイアログをAlt+クリックすると、そのウインドウのタイトル、クラスの他、ウインドウ上のボタン、リストボックス、タブコントロールetcなどの
各項目の情報を取得し、テキストファイルにして開きます。(alt+F2で終了)
ボタン、リストボックス、タブコントロール、アクセシビリティ用インターフェース経由でのクリック可能な物…などに操作したい項目があれば、それはCLKITEMで操作できる項目ということです。
(画面上にあるのに項目がなければ、それはCLKITEMで操作できないアイテムということになるので、CHKIMGで位置を取得してMMVやBTNで直接操作、などのスマートでないやり方で操作するしかないことになります)

またGETITEMで、ウインドウから情報を取得することともできます。
例、メーラーでの「何通のメールがあり、何通が未読」などの情報を、STATICから取得するなど
(uwscのヘルプ、CLKITEM、GETITEMの説明を参照してください)
メニューがあってても、ITM_MENUに項目が出てこない場合、CLKITEMのCLKMENUでは操作ができないようです。
(その場合はあきらめてショートカットキーなどで操作しましょう)

2chブラウザなど、ウインドウによっては、メニューやアクセス可能オブジェクトが数百から1000オーバー、というものもあります。
情報は当然、大きくなります。

//windowpicker.uws
//スクリプトここから
while 1
fukidasi("Alt+Clickでウインドウの情報を取得します")
ifb GETKEYSTATE(VK_ALT) and GETKEYSTATE(VK_LBUTTON) then
fukidasi("情報を取得しています")
id=GETID(GET_FROMPOINT_WIN)
fname = GET_CUR_DIR+"\windowPicker-"+STATUS(id,ST_CLASS)+".txt"

ifb STATUS(id,ST_CLASS)="#32770"
fname = GET_CUR_DIR+"\windowPicker-"+STATUS(id,ST_TITLE)+".txt"
endif
fid = FOPEN(fname,F_WRITE)
fput(fid, "st_title=" +STATUS(id,ST_TITLE))
fput(fid, "st_class=" +STATUS(id,ST_CLASS))
fput(fid, "st_parent=" +STATUS(id,ST_PARENT))
fput(fid, "st_path=" +STATUS(id,ST_PATH))
fput(fid,"")

fputAllitem(fid,id,ITM_BTN,"<<ITM_BTN>>")
fputAllitem(fid,id,ITM_LIST,"<<ITM_LIST>>")
fputAllitem(fid,id,ITM_TAB,"<<ITM_TAB>>")
fputAllitem(fid,id,ITM_MENU,"<<ITM_MENU>>")
fputAllitem(fid,id,ITM_TREEVEW,"<<ITM_TREEVEW>>")
fputAllitem(fid,id,ITM_LSTVEW,"<<ITM_LSTVEW>>")
fputAllitem(fid,id,ITM_STATIC,"<<ITM_STATIC>>")
fputAllitem(fid,id,ITM_STATUSBAR,"<<ITM_STATUSBAR>>")
fputAllitem(fid,id,ITM_TOOLBAR,"<<ITM_TOOLBAR>>")
fputAllitem(fid,id,ITM_ACCCLK,"<<ITM_ACCCLK>>")
fputAllitem(fid,id,ITM_ACCTXT,"<<ITM_ACCTXT>>")
fukidasi("ファイル保存中…")
fclose(fid)
exec("notepad.exe "+ fname)
CTRLWIN(GetID(fname),ACTIVATE)
else
sleep(0.5)
endif

wend

Procedure fputAllitem(fid,id,item,str)
count=GETITEM(id,item,-1)
if count<1 then exit
fukidasi("書き込み中"+str)
fput (fid,str)
fput(fid, "count="+trim(format(count,5)))
for i = 0 to count-1 // -1 -2
fput(fid, trim(format(i,5))+")" +ALL_ITEM_LIST[i])
next
fput(fid,"")
fend
//スクリプトここまで

この記事に

閉じる コメント(2)

こんばんは。ずいぶん昔の記事にレスしますがお許しください。昨日UWSCのスクリプトで行き詰ってネットを徘徊してたらここにたどり着きました。このwindowpicker.uwsはとても便利ですね。おかげで作業効率がずいぶん上がりました。UWSC自体まるっきりの初心者なので、また他の記事も読ませて頂いて勉強します。ありがとうございます。

2007/5/22(火) 午後 11:36 kabukabusun 返信する

顔アイコン

このスクリプトはすばらしい!!
ありがたく、ちょうだいします。 削除

2008/3/29(土) 午後 8:15 [ たかぴょん ] 返信する

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事