UWSC FAQ
Warning: Use of undefined constant full - assumed 'full' (this will throw an Error in a future version of PHP) in /home/hikarujyouho/hikarujyouhou.com/public_html/wp-content/themes/giraffe/single.php on line 49

スポンサーリンク
HPが復活しないので、もしもの時の為のバックパップです。
コンテンツ(CONTENT)
- YOUTUBEチャンネル
- Windows 7/8.x/10 64bit環境での動作について #N1
- ソフトをダウンロードしたが実行できない(どうすれば良いのか分からない) #N2
- ヘルプが見れない #N3
- 記録したスクリプトをループして実行するにはどうするのか #N4
- 記録ボタンが灰色状態であり、押す事ができない #N5
- CLKITEM関数で押せないボタンがある #N6
- CLKITEM関数でアプリのメニュ選択ができない #N7
- 再生時に ウィンドウが出るのをスクリプトが待ち切れずに実行されて おかしな事になる #N8
- KBD、SCKEY関数で使いたいキーの仮想キー名が分からない #N9
- CTRL + ALT + DELETE のキー操作を再現したい #N10
- ネットゲームにて動かない #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/7/8.x/10) #N29
- IEの操作が正しく働かない、IE上での動作を記録しようとしても記録ができない(Vista/7/8.x/10) #N30
- UWSC.INI、UWSC.LOGの場所がわからない #N31
- CHKIMG, PEEKCOLOR関数が遅い(Vista/7/8.x/10) #N32
- タスクトレイ上のアプリを終了させるには #N33
- 別のUWSファイル内の関数を利用(インクルード)するにはどうするのか #N34
- Qt製(クロスプラットフォームのフレームワーク)のウィンドウ(クラス名:QWidget)の操作ができない #N35
- チェックボックス付きリストビューのチェックボックスが設定できない #N36
- IEの操作(DOM)にて、フレーム内の操作ができない #N37
- UWSC本体を起動しようとすると「UWSC実行中:」とメッセージが出て起動できない #N38
- 複数の同じタイトル・クラスのウィンドウを区別したい #N39
- 高レベル記録をしたが同じ項目が複数ある時に 1番目の項目のみが選択される #N40
- Windows8.x/10 にて インストール時に “Windowsによって PCが保護されました” と出る #N41
- アプリの起動にて UAC(ユーザーアカウント制御)警告を回避したい #N42
- ショートカットの起動や 関連付けされたファイルの起動をしたい #N43
- リモートデスクトップにて 最小化や接続を切った場合に動作しない #N44
- IE11にて画面更新後に操作(COM)ができない #N45
- IE終了後にまた CREATEOLEOBJ関数にて IEを起動するとエラー(“システムのシャットダウンは既にスケジュールされています”)が出る #N46
- スクリプトを関数の後に書くと実行されない #N47
- Excelの使用にて定数がわからない、定数名を使用したい #N48
- CHKIMG関数が環境により認識しない #N49
- タッチ操作を実行したい #N50
- 小数点以下の演算で誤差が出る事がある #N51
- 関連記事.
YOUTUBEチャンネル
https://www.youtube.com/channel/UCRzkIVd28RRt9fI4gNraIqQ/featured
スポンサーリンク
Windows 7/8.x/10 64bit環境での動作について #N1
64bitアプリに対しても動作しますが以下の制限があります。
64bitの DLLを呼び出す事はできません
POSACC関数の ACC_API(APIトラップ) 指定は 64bitアプリに対しは無効です
ソフトをダウンロードしたが実行できない(どうすれば良いのか分からない) #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
EXEを実行しようとしても ハング状態になり 実行できない場合は
セキュリティソフトを一時的にオフにして確認してみてください。(特に アバスト 注意)
ヘルプが見れない #N3
OSの解凍機能で解凍するとヘルプが見れない場合があります。(外部解凍ツールを推奨します)
エクスプローラから uwsc.chm を右クリックしてプロバティを表示、セキュリティの「ブロックの解除」ボタンを押してください
また、ネットワーク越しには参照する事はできません
また、フォルダーのパスに # が含まれていると参照する事はできません
記録したスクリプトをループして実行するにはどうするのか #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
対応していません。
音声認識を使うには #N12
SAPI 5.x を利用します。
音声認識は コントロールパネル → 音声認識にて
日本語エンジン(’Microsoft Japanese …’等)を選び
‘プロファイルのトレーニング’ を実行しておいてください
Javaアプリの操作をするには #N13
JREは 32ビット版を使用してください。
各関数にて ACC指定をする事により操作可能になります
サンプル) http://www.uwsc.info/sample.html#N39
スタンバイからの復帰時に画面が表示されない、またスクリーンセーバー画面から元の画面に戻すには #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引数に MORG_DIRECT を指定してください。
なお、第1引数には 直接オブジェクトのウィンドウを指定する必要があります
// メモ帳にabc
id = GETID(“メモ帳”)
MOUSEORG(GETCTLHND(id,”edit”), MORG_DIRECT)
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)を参照してください
// IE9 以上の場合
id = GETID(“Internet Explorer”, “IEFrame”)
ClkItem(id, “xxxxxxxx”, CLK_BTN) // ダウンロード
sleep(1) // 間が必要
ClkItem(id, “保存”, CLK_BTN)
// 直接ダウンロード
// ダウンロードするURL、ファイル名が確定しているのであれば URLDownloadToFileを使えば直接ダウンロードできます。
DEF_DLL URLDownloadToFileA(Long, String, String, Long, Long) :Long :URLmon
URLDownloadToFileA(0, (URL)”http://www.aaa.bbb.com/xxx.csv”, (保存場所)”C:\aaa\xxx.csv”, 0, 0)
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”)
str = “aa11bb11cc”
regex.Global = True
regex.Pattern = “11”
print regex.Replace(str, “X”) // 置換
ファイルのコピー、移動等はどうすれば良いのか #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:\temp\xxx.txt”) // コピー
objFSO.MoveFile(“c:\xxx.txt”, “c:\temp\”) // 移動
記録ができない #N28
全てのアプリにてダメな場合は、常駐ソフト類を外して確認してください。
一部アプリやオブジェクトはダメなものがあります。
OSが Vista以上の場合は実行レベル(UAC)を合わせてください
アプリの操作ができない、記録ができない(Vista/7/8.x/10) #N29
実行レベル(UAC)を合わせてください。
アプリが管理者権限で実行されている場合には、UWSCも管理者権限が必要です
UWSCを起動する時に、右クリック ”管理者として実行…”より起動する
もしくはプロパティの”互換性”タブより”特権レベル”にチェックを入れてください
逆にアプリが一般ユーザの場合には、UWSCも管理者権限ではなく一般ユーザにしてみてください
IEの操作が正しく働かない、IE上での動作を記録しようとしても記録ができない(Vista/7/8.x/10) #N30
IEの保護モードを解除する必要があります。
インターネットオプション → セキュリティの “保護モードを有効にする” を解除してください
イントラネットを使用の場合には インターネット、イントラネットゾーンの両ゾーンとも解除してみてください
また COM操作にて一部機能がダメな場合は、IEの互換表示をオンにしてみてください
UWSC.INI、UWSC.LOGの場所がわからない #N31
XPでは C:\Documents and Settings\ユーザ名\Application Data\UWSC
Vista以降では C:\Users\ユーザ名\AppData\Roaming\UWSC
なお、\Application Data\ / \AppData\ フォルダは非表示フォルダーです
CHKIMG, PEEKCOLOR関数が遅い(Vista/7/8.x/10) #N32
Vista / Windows7 の場合
デスクトップコンポジション(エアロ)の機能をオフにする必要があります。
DwmEnableComposition APIを利用 (http://www.uwsc.info/sample.html#N13)
もしくは
UWSC.exeのプロパティから “互換性” → “デスクトップ コンポジションを無効にする” にチェック
Windows8.x/10 の場合には デスクトップコンポジションをオフにする事はできません。
MOUSEORG関数にてウィンドウを指定して 画面取得指定に MORG_BACKを指定すると、多少は早くなります
タスクトレイ上のアプリを終了させるには #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の操作(DOM)にて、フレーム内の操作ができない #N37
フレームが別ドメインまたはプロトコルが違う場合には、セキュリティの為に DOMでの操作はできません。
しかし、UWSCのIE操作関連の関数であればアクセスができます。(Ver5.1.0以上)
UWSC本体を起動しようとすると「UWSC実行中:」とメッセージが出て起動できない #N38
UWSC本体を多重に起動する事はできません。(ファイルの関連付等からスクリプトの多重実行はできます)
もしも スクリプトを正しく終了できないような場合は
タスクマネージャを起動して「プロセス」タブより “UWSC.exe”を選択して「プロセスの終了」ボタンにて UWSC.exe を終了させてください
複数の同じタイトル・クラスのウィンドウを区別したい #N39
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
高レベル記録をしたが同じ項目が複数ある時に 1番目の項目のみが選択される #N40
種別としてCLK_ACCにて取得した場合には順番確認はしていません。
(アクセシビリティ用インターフェース経由では負荷が高い為)
この場合は、手動でスクリプトを直し順番を付加してください
Windows8.x/10 にて インストール時に “Windowsによって PCが保護されました” と出る #N41
「詳細情報」 というリンクをクリックし、「実行」 ボタンをクリックしてください。
アプリの起動にて UAC(ユーザーアカウント制御)警告を回避したい #N42
UWSCを先に管理者権限で起動しておくと UAC警告は出ません。
(UWSC起動時に右クリックから”管理者として実行…”、 またはプロパティの”互換性”タブより”特権レベル”にチェック)
ショートカットの起動や 関連付けされたファイルの起動をしたい #N43
DOSCMD関数を利用して
doscmd(“C:\Users\Public\Desktop\アプリ.lnk”, True)
アプリが64bitのショートカットの場合は explorer経由にて起動
path = “C:\Users\Public\Desktop\64bitアプリ.lnk”
exec(“explorer “+path)
リモートデスクトップにて 最小化や接続を切った場合に動作しない #N44
マウス、キーボード、画面に依存する関数は動作しません。(BTN, KBD, CHKIMG等)
依存しない関数であれば動作します。(CLKITEM, SENDSTR等)
SENDSTR関数の場合は必ず番号指定を付けてください。
BTN, KBD関数でも 直接指定(MOUSEORG関数にてMORG_DIRECT)であれば動作します
CHKIMG関数は バックグランド指定(MOUSEORG関数にてMORG_BACK)であれば最小化時はOKですが、接続を切った場合はNG
さもなくば VNC等の別のリモート操作ソフトを利用してください。
IE11にて画面更新後に操作(COM)ができない #N45
IE11 では一度アクティブ状態にする必要があります。
ので画面更新の後に IEに対して WM_ACTIVATE を送り操作可能にします。
DEF_DLL SendMessageA(Hwnd, Long, Long, Dword): bool: user32
CONST WM_ACTIVATE = $06
Procedure BusyWait(ie) // 更新待ち処理
repeat
Sleep(0.2)
until (! ie.busy) and (ie.readyState=4)
SendMessageA(ie.Hwnd, WM_ACTIVATE, 0, 0) // 更新直後に WM_ACTIVATEを送る事によりバックグランドでも操作可となる
Fend
IE終了後にまた CREATEOLEOBJ関数にて IEを起動するとエラー(“システムのシャットダウンは既にスケジュールされています”)が出る #N46
通常起動の場合にはエラーが出ませんので、以下のようにすると避ける事ができます。
try
IE = CREATEOLEOBJ(“InternetExplorer.Application”)
except
EXEC(“C:\Program Files\Internet Explorer\iexplore.exe”)
IE = GETACTIVEOLEOBJ(“InternetExplorer.Application”)
endTry
スクリプトを関数の後に書くと実行されない #N47
仕様です、関数はメインルーチンの後に書いてください。
(メインルーチンは関数前までであり、関数後にメインルーチンを書いても実行されない)
Excelの使用にて定数がわからない、定数名を使用したい #N48
Excelの定数名を記述したファイル(ExcelConst.uws) をダウンロードして
スクリプトの先頭で CALL ExcelConst.uws を入れるとExcelの定数名が使用できます
CHKIMG関数が環境により認識しない #N49
画面のスケーリングが 100%以外の場合(ディスプレイの設定にて「項目のサイズを変更する」)にて
画像の解像度が変わる為、画面スケーリングが合っていないと認識できません。
ですので、この場合は画面のスケーリングをあわせてください。
また、色幅(第8引数)を指定する事により、多少の色の揺らぎは吸収できます。
タッチ操作を実行したい #N50
BTN関数にて TOUCHを指定します。
// タップ
BTN(TOUCH, CLICK, 400, 400)
// 長押し
BTN(TOUCH, DOWN, 400, 400)
BTN(TOUCH, UP, 400, 400, 2000) // 2秒
// スワイプ
BTN(TOUCH, DOWN, G_SCREEN_W, 400) // チャームを出す
BTN(TOUCH, UP, G_SCREEN_W-100, 400)
// ズーム
BTN(TOUCH, DOWN, 400, 400)
BTN(TOUCH, DOWN, 400, 450)
BTN(TOUCH, UP, 400, 600)
BTN(TOUCH, UP, 400, 250)
小数点以下の演算で誤差が出る事がある #N51
IEEE 浮動小数点演算による仕様です。 (詳しくは「演算誤差」等で検索してください)
対策が必要な場合は ROUND関数等を利用してください。
関連記事.
スポンサーリンク