その他項目

スクランブル

スクリプトを暗号化して難読化します。

以下に記載するコマンドはコマンドプロンプトで実行します。

xxxxx.uwsにスクランブルを掛けたものをyyyyy.uwsとして生成。

UWSC /A xxxxx.uws yyyyy.uws

xxxxx.uwsはxxxxx.orgにリネームされ、xxxxx.uwsとして生成。

.orgはオリジナル(original)を表す拡張子で、元のファイルを意味します。

UWSC /A xxxxx.uws

設定ファイル・ログファイル

設定ファイル・ログファイルはWindows XPの場合は「C:\Documents and Settings\uwsername\Application Data\UWSC」、Vista以降は「C:\Users\username\AppData\Roaming\UWSC」にあります。「Application Data」、「AppData」フォルダは非表示フォルダです。

  • UWSC
    • RecIE.INI
    • UDEBUG.LOG
    • UDebug.INI
    • UWSC.INI
    • UWSC.LOG

RecIE.INI

RecIEの設定情報が書かれています。

[SET]
Position=-8,-8
Msg1=1
Attention=1
Size=1382,744
Ratio=150,440
NoComment=0
LinkNavi=0
Assert=0
AllNavi=0
NoNewWin=0
GetHtml=0
Version=2.3
[URL]
1=http://example.com/
[BUSYWAIT]
//——
DEF_DLL SendMessageA(Hwnd, Long, Long, Dword): bool: user32
CONST WM_ACTIVATE = $06
Public Pub_url, Pub_docc, Pub_BeforNav_cnt, Pub_DocComp_cnt, Pub_inp_flg
Procedure BusyWait()
  Sleep(0.3)
  tm = GetTime()
  repeat
    ifb GetTime() – tm > 90  // TimeOut
       Pub_docc = “”; Pub_BeforNav_cnt=0; Pub_DocComp_cnt=0
       IE.Navigate(Pub_url)
       tm = GetTime()
    endif
    Sleep(0.2)
    ifb Pub_inp_flg
       Pub_inp_flg = False
       continue
    endif
    if IE.busy then continue
    if Pub_url = “” then break  // No read
    if (Pos(“*”+Pub_url+”*”,Pub_docc)) or (Pos(“*”+IE.LocationURL+”*”,Pub_docc)) or (Pub_BeforNav_cnt<=Pub_DocComp_cnt) then else continue
    errflg = False
    if IE.document.title = "503 Unavailable" then errflg = True
    if IE.document.title = "Service Unavailable" then errflg = True
    if IE.document.title = "503 Service Temporarily Unavailable" then errflg = True
    ifb errflg
       Sleep(90)  // 503: Wait&Retry
       tm = 0
       continue
    endif
    Sleep(0.3)
  until ! Pub_inp_flg
  Pub_url=""; Pub_docc=""; Pub_BeforNav_cnt=0; Pub_DocComp_cnt=0
  SendMessageA(IE.Hwnd, WM_ACTIVATE, 0, 0)
Fend
Procedure setOleEvent()
  OleEvent(IE, "DWebBrowserEvents2", "BeforeNavigate2", "fucBeforNav")
  OleEvent(IE, "DWebBrowserEvents2", "DocumentComplete", "fucDocComp")
  OleEvent(IE, "DWebBrowserEvents2", "OnQuit", "fucQuit")
  Pub_url=""; Pub_docc=""; Pub_BeforNav_cnt=0; Pub_DocComp_cnt=0; Pub_inp_flg=False
Fend
Procedure fucBeforNav()
  ifb (Pos("javascript:",""+EVENT_PRM[1])=0) and ("about:blank"<>“”+EVENT_PRM[1])
     if Pub_url=”” then Pub_url = “”+EVENT_PRM[1]
     Pub_BeforNav_cnt = Pub_BeforNav_cnt + 1
  endif
  Pub_inp_flg = True
Fend
Procedure fucDocComp()
  ifb (Pos(“javascript:”,””+EVENT_PRM[1])=0) and (“about:blank”<>“”+EVENT_PRM[1])
     Pub_docc = Pub_docc + “*”+EVENT_PRM[1]+”*”
     Pub_DocComp_cnt = Pub_DocComp_cnt + 1
  endif
  Pub_inp_flg = True
Fend
Procedure fucQuit()
  ExitExit
Fend
[ASSERT]
Procedure Assert(cmd, line)
  if cmd then Exit
  Msgbox(“Assertion failed at “+line)
  ExitExit
Fend
[POPUPWIN]
Procedure PopupWin(title, btn, no=-1, str=””)
  id = Getid(title,”#32770″,10)
  Sleep(1)
  if no>=0 then Sendstr(id,str,no,True)
  Clkitem(id,btn)
Fend
[NEWRECWIN]
Function NewRecWin(title, no=1)
  Result = NOTHING
  For i = 0 to 60
    Try
      Result = GetActiveOLEObj(“InternetExplorer.Application”, title, no)
      Break
    Except;  EndTry
      Sleep(1)
  Next
  Ifb Result = NOTHING
     MsgBox(“New Window was not able to be detected”)
     ExitExit
  Endif
Fend
SETセクション

「設定」の項目

Position
x座標,y座標
Size
幅,高さ
Ratio
比率

以下の項目については、チェックなしは「0」、チェックありは「1」。

NoComment
「コメントは付加しない」
LinkNavi
「リンクは IE.Navigate で処理する」
Assert
「Assert 関数入れる」
AllNavi
「全て IE.Navigate で処理する(※ページによりダメな場合あり)」
NoNewWin
「新規ウィンドウ(RecIE)の作成はしない」
GetHtml
「”HTMLの取得”にてヘッダー部も含めて取得する」
Version
アプリのバージョン
URLセクション

「記録」でアドレスを入力するときの履歴にあるURL。1行毎に「番号=URL」と記録されていきます。

1=http://uwsc.s1007.xrea.com
2=http://www.google.jp

UDEBUG.LOG

UWSC Debuggerでプログラムを実行したときのログが出力されます。

UDebug.INI

UWSC Debuggerの設定情報が書かれています。

[SET]
TabWidth=4
Color=4144959,16777215
Syntax=16777215,1
Constant=16744703,1
SpecialVar=14822282,1
Comment=8454016,0
UWSCFunc=33023,1
String=12632256,0
Position=422,6
Size=697,735
Ratio=201,111,264
Version=2.302
FileUpMsgTime=1600
BtnStop=4
BtnRun=5
BtnPause=6
BtnStepIn=7
BtnStepOver=8
Font=MS ゴシック,10
TabWidth
タブ幅。半角文字何文字分の幅を取るか。2〜16の偶数を指定。

文字色をBGR・10進数の値で指定。Colorは「背景色,文字色」形式、それ以外は「文字色,太字・斜体」形式で指定。標準:0、太字:1、斜体:2、太字・斜体:3。

Color
背景色・文字色
Syntax
構文
Constant
定数
SpecialVar
特殊変数
Comment
コメント
UWSCFunc
UWSC関数
String
文字列
Position
位置(x,y)
Size
サイズ(幅,高さ)
Ratio
各ウィンドウの比率(変数・ログの幅,Global変数の高さ,ログの高さ)
Version
UWSC Debuggerのバージョン
FileUpMsgTime
外部エディタで修正されたときのメッセージ表示時間。単位はms(ミリ秒)。

ファンクションキーの数字部分を指定。F5なら5、F8なら8。

BtnStop
停止ボタン
BtnRun
実行ボタン
BtnPause
一時停止ボタン
BtnStepIn
ステップイン
BtnStepOver
ステップオーバー
Font
フォント

追加できる項目

LineSpace
行間を指定。Fontの高さに対してパーセント指定。マイナスで行間が狭まる(-20で行間なし)。

FileUpMsgTimeは以下のような吹き出しが表示される時間を指定することができます。

UWSC Debugger
D:\Document\UWSC\sample.uws
ファイルが更新されました

UWSC Debuggerとメモ帳で同じファイルを開き、メモ帳でプログラムを修正しUWSC Debuggerをアクティブにするというようなときに表示されます。

UWSC.INI

UWSCの設定情報が書かれています。

[SET]
Position=265,28
PlayHotKey=1,2
StopHotKey=2,2
RecHotKey=3,2
TrayHotKey=14,5
LunchMenuHotKey=17,5
MouseOrg=0
NotActive=0
StayOnTop=0
LogLines=100
DefaultFont=,
TaskTrayStart=1
RecLevel=0
Cp2Clipboard=1
NotExtraMovRec=0
RecBackGround=0
[LUNCHMENU]
Position=0,0
T1=サンプル
S1=.\sample\サンプル.UWS
T2=CLKITEM取得
S2=”C:\Users\Taro\Desktop\UWSC\CLKITEM取得_.UWS”
P2=1
P1=0
[SCHEDULE]
MaxNumber=40
WakeUp=0
Sound=0
S1=D:\Desktop\UWSC\Wi-Fi定期接続.UWS
M1=YMDNN MOD 5 = 0
P1=1
S2=D:\Desktop\UWSC\sample.UWS -R2
M2=
P2=0
SETセクション
Position
UWSCメイン画面の座標。
PlayHotKey
「Fキー,母体キー」で指定。キーコード参照。
StopHotKey
PlayHotKeyと同じ。
RecHotKey
PlayHotKeyと同じ。
TrayHotKey
PlayHotKeyと同じ。
LunchMenuHotKey
キーコード参照。
MouseOrg
余分な時間、マウス移動は記録しない
NotActive
.
StayOnTop
.
LogLines
.
DefaultFont
.
TaskTrayStart
.
RecLevel
0:低レベル記録、1:高レベル記録。
Cp2Clipboard
.
NotExtraMovRec
マウス座標を相対座標で記録する
RecBackGround
バックグラウンドで実行できる形で記録
キーコード
  1. CTRL:0
  2. WIN:1
  3. ALT:2
  4. SHIFT+CTRL:3
  5. SHIFT+ALT:4
  6. CTRL+ALT:5
  1. SPACE:0
  2. F1:1
  3. F2:2
  4. F3:3
  5. F4:4
  6. F9:5
  7. F10:6
  8. F11:7
  9. F12:8
  10. ↑:9
  11. ↓:10
  12. →:11
  13. ←:12
  14. Q:13
  15. W:14
  16. E:15
  17. R:16
  18. A:17
  19. S:18
  20. D:19
  21. F:20
  22. End:21
  23. Home:22
  24. F5:23
  25. F6:24
  26. F7:25
  27. F8:26
  28. T:27
  29. Y:28
  30. U:29
  31. I:30
  32. O:31
  33. P:32
  34. G:33
  35. H:34
  36. J:35
  37. K:36
  38. L:37
  39. Z:38
  40. X:39
  41. C:40
  42. V:41
  43. B:42
  44. N:43
  45. M:44
  46. 1:45
  47. 2:46
  48. 3:47
  49. 4:48
  50. 5:49
  51. 6:50
  52. 7:51
  53. 8:52
  54. 9:53
  55. 0:54
LUNCHMENUセクション

Position
.
T1
.
S1
絶対パスもしくは「C:\Program Files (x86)\UWSC」からの相対パス
T2
.
S2
.
P2
.
P1
.
SCHEDULEセクション

MaxNumber
登録できるスケジュールの数を指定。デフォルト:40。
WakeUp
実行時に休止状態から復帰する。0:チェックなし、1:チェックあり。
Sound
実行時にBEEP音で知らせる。0:チェックなし、1:チェックあり。
Sn(n=1,2,3,…)
絶対パスもしくは「C:\Program Files (x86)\UWSC」からの相対パス。「 -Rn」nに実行回数を指定。
Mn(n=1,2,3,…)
タイマー設定。「式による指定」は「NN=0」。「一回だけ実行」は「20210925:00:00:一回」。「時間指定」は「00:00:毎日:」、「00:00:毎週:金」、「00:00:毎月:6」、「1分毎」、「起動時」、設定なしは空欄。「指定Windowが現れた時」は「win:TITLE:CLASS」形式で指定。
Pn(n=1,2,3,…)

UWSC.LOG

UWSCメイン画面でプログラムを実行したときのログが出力されます。