UWSC
>> 「雑談辞典」トップに戻る
このページは、UWSCの自分用メモです。
私は、UWSC初心者ですし、実際、以下のスクリプトには、動かずそのままになっていたりするものもあるので、間違いが多く含まれています。
UWSCで自動化 超速!! Windows マクロテクニック 掲載スクリプト一覧 - IZAGNE
/// 変数を宣言する
text = ""
/// プログラム (IEなど) を起動する
EXEC("NOTEPAD")
/// プログラム (IEなど) をアクティブにする (実際に記録する)
例) ACW(GETID("無題 - メモ帳","Notepad"), 164, 149, 490, 299, 0)
/// あらかじめ決まった文字を入力する1
/// まずファイルを開いて、そのIDを取得する
DIR = "C:\progre.html" /// または、progre.txtなど
FID = FOPEN(DIR, F_READ)
/// それをFileTextに入れて、IDに貼り付ける1 (貼り付け先がメモ帳など、GETIDでIDが取れる場合)
FileText = fget(FID, F_ALLTEXT) /// 全てのテキストの場合
FileText = fget(FID, 1) /// X行目のテキストの場合
SENDSTR(GETID("abcのお申込みを受付けました"), FileText)
fclose(FID)
/// それをクリップボードに入れて、Ctrl+Vで貼り付ける2 (貼り付け先のIDがGETIDで取れない場合)
SENDSTR(0, fget(FID, F_ALLTEXT)) /// 全てのテキストの場合
SENDSTR(0, fget(FID, 1)) /// X行目のテキストの場合
BTN(LEFT, DOWN, 565, 172, 0) // 貼り付けたい場所をクリックする
Paste()
PROCEDURE Paste()
KBD(VK_CTRL, DOWN, 40)
KBD(VK_V, CLICK, 40)
KBD(VK_CTRL, UP, 40)
FEND
/// あらかじめ決まった文字を入力する2 (実際に記録する)
KBD(VK_A, CLICK, 40) /// 待ち時間は、40ms。
KBD(VK_SPACE, CLICK, 40)
KBD(VK_LEFT,CLICK,100)
KBD(VK_OEM_PERIOD, CLICK, 40)
KBD(VK_TAB, CLICK, 40)
KBD(VK_RETURN, CLICK, 40)
text + "<#CR>" /// 文字の連結は "+"、改行は "<#CR>"、ダブルクオーテーションは、<#DBL>
/// text変数に入った文字を入力する1 (貼り付け先がメモ帳など、GETIDでIDが取れる場合)
SENDSTR(GETID("無題 - メモ帳"), text)
/// text変数に入った文字を入力する2 (貼り付け先のIDがGETIDで取れない場合)
/// クリップボードに一度送って、Ctrl+Vで貼り付ける
SENDSTR(0, text)
Paste()
PROCEDURE Paste()
KBD(VK_CTRL, DOWN, 40)
KBD(VK_V, CLICK, 40)
KBD(VK_CTRL, UP, 40)
FEND
(その他参考) ひらがなや漢字を入力したい
/// 文字を入力させるポップアップを出す
Name = INPUT("あなたの名前を入れてください","かずお")
IFB Name = "かずお"
EXITEXIT
PASSWD = INPUT("パスワードを入れてください","デフォルトのテキスト",1) // 最後の",1"をつけると"*****"という表示になる。(主にパスワードで使用)
IFB PASSWD <> "1234"
EXITEXIT
/// クリックする (実際に記録する)
例) BTN(LEFT, DOWN, 565, 172, 0)
/// IEを立ち上げる
URL = "http://kazuo.fc2web.com"
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate(URL)
/// IEのページが表示されるまで待つ1
WaitIE()
PROCEDURE WaitIE()
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4
FEND
/// IEのページが表示されるまで待つ2 (直前にIDを取っていない場合、IEのIDをGetしてVisibleにしてから待つ)
WaitIE()
PROCEDURE WaitIE()
IE = GetActiveOLEObj("InternetExplorer.Application")
IE.Visible = True
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4
FEND
/// IEのフォームに入力する
IE.document.forms[0].elements[2].value = "アカウント名"
IE.document.forms[0].elements[3].value = "パスワード"
IE.document.forms[0].elements[5].click()
/// ExcelをActiveにする
EXCEL = GetActiveOLEObj("EXCEL.Application")
EXCEL.visible = True
EXCEL.RANGE("B3:Q3").select
/// Windowを最大化する (座標を固定し、クリック場所を限定するため。新しいツールバーをインストールすると、座標位置がずれるので注意)
ID = GETID("メニュー画面 - Microsoft Internet Explorer","IEFrame")
CTRLWIN(ID, MAX)
/// IEでエレメントの数を振ってみてチェックする
for i = 0 to 9
IE.document.forms[0].elements[i].value = i
next
for i = 0 to 9
IF i MOD 2 = 0 THEN IE.document.forms[0].elements[i].checked = true
next
for i = 0 to 9
IE.document.forms[0].elements[i].click()
msgbox("elements[" + i + "]をクリックしました")
next
/// ボタンのalt属性が「ボタン名」のボタンをクリックする
image_alt = "ボタン名"
while true
//---0〜imageの数まで調べる
for i = 0 to IE.document.images.length - 1
//---ボタン名と一致するi個目のimageを調べる
ifb IE.document.images.item(i).alt = image_alt then
//---一致したi個目のimageをクリック
IE.document.images.item(i).click()
msgbox("スクリプトは、IE.document.images.item(" + i + ").click()です")
//---クリックしたらループを抜ける
break 2
endif
next
wend
→ これでボタン名に対応する数値 i が例えば4と分かったら、単に、IE.document.images.item(4).click()でいい。
/// 途中で変数のメッセージボックスを出してチェックする
MSGBOX(text)
/// ファイルに書き込む
DIR = "C:\test.txt"
FID = FOPEN(DIR, F_WRITE)
FPUT(FID, "書き込むテキスト")
FPUT(FID, "書き込むテキスト1行目", 1, 1)
FPUT(FID, "書き込むテキスト2行目", 2, 1)
FPUT(FID, "書き込むテキスト3行目", 3, 1)
FCLOSE(FID)
/// (ループなどを) ファイル・変数に追加していき、後でまとめて処理する
Copyright(C) 2011 Kazuo. All Rights Reserved.
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||