
update 2012/02/13
よくあるご質問
Windows 7 64bit環境での動作について #n1
ソフトをダウンロードしたが実行できない(どうすれば良いのか分からない) #n2
ヘルプが見れない #n3
記録したスクリプトをループして実行するにはどうするのか #n4
記録ボタンが灰色状態であり、押す事ができない #n5
CLKITEM関数で押せないボタンがある #n6
CLKITEM関数でアプリのメニュ選択ができない #n7
再生時に ウィンドウが出るのをスクリプトが待ち切れずに実行されて おかしな事になる #n8
KBD、SCKEY関数で使いたいキーの仮想キー名が分からない #n9
CTRL + ALT + DELETE のキー操作を再現したい #n10
ネットゲームにて動かない、DirectXのアプリにてマウス操作ができない #n11
音声認識を使うには #n12
Javaアプリの操作をするには #n13
スタンバイからの復帰時に画面が表示されない、またスクリーンセーバー画面から元の画面に戻すには #n14
CLKITEM関数のCLK_ACC指定にてダイアログを出すと閉じるまで制御が戻らない #n15
スクリプトを実行すると重く(CPU使用率が100%に)なる #n16
KBD, BTN関数をバックグランドのアプリで実行したい #n17
MDI形式のウィンドウ(ExcelやAccess等)が正しく記録・再生できない #n18
スクリプトをメモ帳で作成すると拡張子がTXTになり実行できない #n19
スケジュール設定にて休止状態から復帰させた場合に、5分後にまた休止状態になってします #n20
数値を COPY、POS、CHGMOJ、GETSTR関数等で取得して 数値演算したいのだが文字演算になる #n21
Excelのセルに COMを使い読み書きしていると COM_errorが出る事がある #n22
IEの "ファイルのダウンロード" にて "保存" ボタンが反応しない #n23
EXEC関数にてスペースを含んだパス、ファイルを実行する事が出来ない #n24
IEの操作(COM)にて、ダイアログが出ると動作が停止する #n25
正規表現を利用したい #n26
ファイルのコピー、削除等はどうすれば良いのか #n27
記録ができない #n28
アプリの操作ができない、記録ができない(Vista, Win7) #n29
IEの操作が正しく働かない、IEが2つ起動する、記録ができない(Vista, Win7) #n30
Pragram files下にインストールしたが UWSC.INI、UWSC.LOGが見つからない(Vista, Win7) #n31
CHKIMG, PEEKCOLOR関数が遅い(Vista, Win7) #n32
タスクトレイ上のアプリを終了させるには #n33
別のUWSファイル内の関数を利用(インクルード)するにはどうするのか #n34
Qt製(クロスプラットフォームのフレームワーク)のウィンドウ(クラス名:QWidget)の操作ができない #n35
チェックボックス付きリストビューのチェックボックスが設定できない #n36
IEの操作(COM)にて、更新待ちの部分(IE.busy, IE.readyState)でエラーが出る事がある #n37
IEの操作(COM)にて、フレーム内(別ドメイン)の操作ができない #n38
「UWSCの多重起動は禁止です」とダイアログが出て起動できない #n39
複数の同じタイトル・クラスのウィンドウを区別したい #n40
Windows 7 64bit環境での動作について #n1
64bitアプリに対しても動作しますが以下の制限があります。
64bitの DLLを呼び出す事はできません
POSACC関数の ACC_API(APIトラップ) 指定は 64bitアプリに対しは無効です
SOUND関数にて"BEEP"を指定した場合にPC内部スピーカではなく、通常のサウンド出力になります
ソフトをダウンロードしたが実行できない(どうすれば良いのか分からない) #n2
ソフトは圧縮(ZIP形式)されています、OSによっては解凍ソフトでの解凍処理が必要です。
以下を参照してみてください
http://www.vector.co.jp/for_users/download_help.html
http://www.vector.co.jp/for_users/guide/download/down_02.html
ヘルプが見れない #n3
OSの解凍機能で解凍するとヘルプが見れない場合があります。
エクスプローラから uwsc.chm を右クリックしてプロバティを表示、セキュリティの「ブロックの解除」ボタンを押してください
また、ネットワーク越しには参照する事はできません
ソフトの解凍はOSの解凍機能ではなく、外部ソフトの解凍ツールでの解凍をお勧めします
記録したスクリプトをループして実行するにはどうするのか #n4
'ファイルを開く' ダイアログに実行回数の指定があります。
また、スクリプトを加工する事により細かな制御ができます
記録したスクリプトファイルをメモ帳などで開いて先頭行に
While True
最終行に
Wend
を入れるとこの間のスクリプトが永遠に実行されます。停止はホットキーでしてください
回数を限定する場合は For 〜 Next を使います
この辺はBASIC言語をちょっとだけ勉強してください。応用範囲が非常に広がるでしょう
記録ボタンが灰色状態であり、押す事ができない #n5
記録には RecUws.dll が必要です。
ダウンロードした物の中に含まれていますので
必ず UWSC.exe と同じフォルダにあるようにしてください
CLKITEM関数で押せないボタンがある #n6
スピードボタンや画像を貼付けてボタンに見せ掛けている物等はダメです。
ブラウザやOffeceアプリ等は COMもしくはアクセシビリティインターフェースを利用してください
(サンプルページを参照)
CLKITEM関数でアプリのメニュ選択ができない #n7
高レベル記録にて記録を確認してみてください。
または、ショートカットキーの実行関数(SCKEY)で代用してください
再生時に ウィンドウが出るのをスクリプトが待ち切れずに実行されて おかしな事になる #n8
スクリプト内のGETID関数に第3引数(待ち時間指定)を付けてください。
GETID("xxxx", "xxxx", -1) // -1:画面が出るまで待つ
KBD、SCKEY関数で使いたいキーの仮想キー名が分からない #n9
簡単に調べる方法は記録状態(低レベル記録)にして、知りたいキーを押し生成されるスクリプトを見る事です。
CTRL + ALT + DELETE のキー操作を再現したい #n10
このキーコンビネーションを実行する事は出来ません。
ネットゲームにて動かない #n11
DirectXのアプリにてマウス操作ができない
対応していません。
音声認識を使うには #n12
SAPI 5.x を利用します。WindosXP 以上であれば入っています
('コントロールパネル'-> '音声認識'-> 音声認識のタブがあればOK)
音声認識は コントロールパネル -> 音声認識にて
日本語エンジン('Microsoft Japanese ...'等)を選び
'プロファイルのトレーニング' を実行しておいてください
Javaアプリの操作をするには #n13
Java Access Bridge for Windows が必要です。
http://java.sun.com/products/accessbridge/
から Java Access Bridge for Microsoft Windows Operating System 2.0 をダウンロードしてインストール
各関数にてACC指定する事により操作可能になります
スタンバイからの復帰時に画面が表示されない、またスクリーンセーバー画面から元の画面に戻すには #n14
POFF(P_MONIPOWER3)
にて画面を復帰できます。
CLKITEM関数のCLK_ACC指定にてダイアログを出すと閉じるまで制御が戻らない #n15
CLK_LEFTCLK を付加してください。
CLKITEM(id, "xxx", CLK_ACC or CLK_LEFTCLK)
スクリプトを実行すると重く(CPU使用率が100%に)なる #n16
SLEEP関数を適当に入れてください。
KBD, BTN関数をバックグランドのアプリで実行したい #n17
MOUSEORG関数を使用して第2引数に 2 を指定してください。
なお、第1引数には 直接オブジェクトのウィンドウを指定する必要があります
// メモ帳にabc
id = GETID("メモ帳")
MOUSEORG(GETCTLHND(id,"edit"), 2)
KBD(VK_A); KBD(VK_B); KBD(VK_C)
MDI形式のウィンドウ(ExcelやAccess等)が正しく記録・再生できない #n18
低レベル記録では MDI形式の子ウィンドウの位置情報までは記録していません
ので子ウィンドウの位置が変ると正しく再生できません。
ExcelやAccessの場合にはCOMでの操作を検討してください
スクリプトをメモ帳で作成すると拡張子がTXTになり実行できない #n19
保存ダイアログにて 'ファイルの種類' を "すべてのファイル" に変更して保存してください。
またエクスプローラの設定にて TXT拡張子が表示されない場合があります
エクスプローラの 'ツール' -> 'フォルダ オプション' -> '表示' の詳細設定の中の
"登録されている拡張子は表示しない" のチェックを外してください
スケジュール設定にて休止状態から復帰させた場合に、5分後にまた休止状態になってします #n20
以下を起動するスクリプトの先頭に入れてください。
// アイドルタイマによるスタンバイを禁止
DEF_DLL SetThreadExecutionState(DWORD): DWORD: kernel32
SetThreadExecutionState($80000003)
数値を COPY、POS、CHGMOJ、GETSTR関数等で取得して 数値演算したいのだが文字演算になる #n21
文字操作関連の関数は戻り値として文字列を返す為です。
VAL関数を使い数値にする必要があります
a = 100
x = Copy(a, 1, 3)
print x + 100 // 100100 文字演算
print VAL(x) + 100 // 200 数値演算
Excelのセルに COMを使い読み書きしていると COM_errorが出る事がある #n22
入力、編集モードになっているとダメです、コマンドモードにしてください。
Pro版の場合、Excel用関数(XLSETDATA, XLGETDATA)を使えば自動で回避できます
IEの "ファイルのダウンロード" にて "保存" ボタンが反応しない #n23
"ファイルのダウンロード" ダイアログ は反応が非常に悪いので以下のような処理が必要です。
また、IEにてファイルのダウンロード処理(http://www.uwsc.info/sample.html#n58)を参照してください
IE7, IE8の場合
GETID("ファイルのダウンロード", "#32770", -1)
for i = 0 to 30
if (i mod 6)=0 then CtrlWin(GETID("download 完了しました","#32770"), ACTIVATE)
id = GETID("ファイルのダウンロード", "#32770")
if id < 0 then break
CLKITEM(id, "保存", CLK_BTN)
SLEEP(1)
next
IE9 にて下部に出るボタンの場合
id = GETID("Internet Explorer", "IEFrame")
CTRLWIN(id, ACTIVATE)
Sleep(1)
CLKITEM(HNDtoID(GETCTLHND(id,"DirectUIHWND",2)), "保存", CLK_ACC)
EXEC関数にてスペースを含んだパス、ファイルを実行する事が出来ない #n24
スペースを含む場合は"ダブルコーテーション"で括る必要があります。
(文字列の中ではダブルコーテーションの特殊文字 <#DBL> を使う)
EXEC("<#DBL>C:\Program Files\UWSC\uwsc.exe<#DBL> <#DBL>C:\Program Files\UWSC\abc.uws<#DBL>")
IEの操作(COM)にて、ダイアログが出ると動作が停止する #n25
ダイアログを出す前にスレッドを起動し、スレッドでダイアログを閉じる処理をしてください。
Thread PopupWin()
IESetData(IE, True, "dlgbtn") // ダイアログ起動
// ダイアログボタンクリック
Procedure PopupWin()
id = Getid(, "#32770", -1)
Sleep(1)
Clkitem(id, "OK")
Fend
正規表現を利用したい #n26
VBScript.RegExpオブジェクトを利用してください。
regex = CREATEOLEOBJ("VBScript.RegExp")
regex.Pattern = "[^a-zA-Z0-9]"
ファイルのコピー、削除等はどうすれば良いのか #n27
DOSCMD関数で処理するか、Scripting.FileSystemObject を利用してください。
// DOSCMD関数にて
DOSCMD("copy c:\xxx.txt <#DBL>c:\a b\xxx.txt<#DBL>") // パスにスペースがある場合は<#DBL>が必要
// Scripting.FileSystemObject にて
objFSO = CREATEOLEOBJ("Scripting.FileSystemObject")
objFSO.CopyFile("c:\xxx.txt", "c:\a b\xxx.txt") // コピー
objFSO.DeleteFile("c:\xxx.txt") // 削除
記録ができない #n28
全てのアプリにてダメな場合は、常駐ソフト類を外して確認してください。
一部アプリやオブジェクトはダメなものがあります。
Vista, Win7の場合は実行レベル(UAC)を合わせてください
アプリの操作ができない、記録ができない(Vista, Win7) #n29
実行レベル(UAC)を合わせてください。
アプリが管理者権限で実行されている場合には、UWSCも管理者権限が必要です
UWSCを起動する時に、右クリック "管理者として実行..."より起動する
もしくはプロパティの"互換性"タブより"特権レベル"にチェックを入れてください
逆にアプリが一般ユーザの場合には、UWSCも管理者権限ではなく一般ユーザにしてみてください
IEの操作が正しく働かない、IEが2つ起動する(Vista, Win7) #n30
IE上での動作を記録しようとしても記録ができない
IEの保護モードを解除する必要があります。
インターネットオプション -> セキュリティの "保護モードを有効にする" を解除してください
Pragram files下にインストールしたが UWSC.INI、UWSC.LOGが見つからない(Vista, Win7) #n31
VirtualStoreリダイレクト機能により以下のフォルダに作られます。
C:\Users\ユーザ名\AppData\Local\VirtualStore\Program Files\UWSC
なお、AppDataフォルダは非表示フォルダです
このフォルダに作られるのを避けたい場合は Pragram files下以外の所にインストールしてください
CHKIMG, PEEKCOLOR関数が遅い(Vista, Win7) #n32
ウィンドウズ・エアロの機能をオフにする必要があります。
DwmEnableComposition APIを利用 (http://www.uwsc.info/sample.html#n13)
もしくは
UWSC.exeのプロパティから "互換性" -> "デスクトップ コンポジションを無効にする" にチェック
タスクトレイ上のアプリを終了させるには #n33
For i=0 to GetAllWin()-1; Print Status(ALL_WIN_ID[i], ST_TITLE); Next
を実行してそれらしいタイトルを見つけてください
で、CtrlWin(GETID("xxタイトル"), Close)
別のUWSファイル内の関数を利用(インクルード)するにはどうするのか #n34
CALL文を利用します。 CALL xxxx.uws
xxxx.uws にはメインルーチンは必要ありません
Qt製(クロスプラットフォームのフレームワーク)のウィンドウ(クラス名:QWidget)の操作ができない #n35
Qt製でアクセシビリティをオフで作成されたものは、オブジェクトの認識ができません。
低レベル関数で処理してください
チェックボックス付きリストビューのチェックボックスが設定できない #n36
flag = True // On(True) / Off(False)
// CLK_ACC + CLK_LEFTCLK にて
CLKITEM(id, "abcd", CLK_ACC or CLK_LEFTCLK, flag)
これでダメな場合は
// PEEKCOLORで確認してスペースキーで処理する
CLKITEM(id, "abcd", CLK_ACC or CLK_MUSMOVE, False)
if (PEEKCOLOR(G_MOUSE_X-103, G_MOUSE_Y)=0) <> flag then SCKEY(id, VK_SPACE)
IEの操作(COM)にて、更新待ちの部分(IE.busy, IE.readyState)でエラーが出る事がある #n37
COM_ERR_IGN-COM_ERR_RETか、TRY-EXCEPTを使い無視してください。
COM_ERR_IGN
repeat
Sleep(0.2)
until (! ie.busy) and (ie.readyState=4)
COM_ERR_RET
IEの操作(COM)にて、フレーム内(別ドメイン)の操作ができない #n38
フレームが別ドメインの場合には、セキュリティの為にCOMでの操作はできません。
操作は、ACC(アクセシビリティ用インターフェース)を利用してください
「UWSCの多重起動は禁止です」とダイアログが出て起動できない #n39
UWSC本体を多重に起動する事はできません。(ファイルの関連付等からスクリプトの多重実行は可)
UWSC本体が見えないのに(タスクトレイ内にも無い状態) このダイアログが出る場合には
タスクマネージャを起動して「プロセス」タブより "UWSC.exe"を選択して「プロセスの終了」ボタンにて UWSC.exe を終了させてください
複数の同じタイトル・クラスのウィンドウを区別したい #n40
IEであれば GETACTIVEOLEOBJ関数にて順番指定にて区別できます。
IE以外であれば、GETALLWIN関数を利用して探して下さい
id1 = getidEx("メモ帳", "notepad", 1) // 1つ目
id2 = getidEx("メモ帳", "notepad", 2) // 2つ目
// title:タイトル、 class:クラス、 num:順番
Function getidEx(title, class, num)
Result = -1
cnt = 0
for i = 0 to GETALLWIN()-1
ifb Status(ALL_WIN_ID[i], ST_CLASS) = class
ifb Pos(title, Status(ALL_WIN_ID[i], ST_TITLE))
cnt = cnt + 1
ifb cnt = num
Result = ALL_WIN_ID[i]
Exit
endif
endif
endif
next
Fend
Copyright (C) 2007-2012 umiumi All rights reserved.