さぁ君もレッツトライ! 要はバトン受け取りません!
友達にSSもらう時、常に右下に空白があったり、拡張子がbmpで重たかったりするので一応書いておく

あとUWSCで画像判定するためにも必要な最低限知識





まず、スクリーンショットを撮るわけですが、既にソフトは紹介してあります。

大量に撮る時はそういうソフトが不可欠ですが、他にも方法はあります

文章をコピーするのと同様に、画面情報もコピーできます

全体のスクリーン画面をコピーするにはキーボードの右上あたりにあるPrintScreenキーを押します

アクティブウィンドウのみの画面をコピーしたい時はAlt(押しながら)+PrintScreenキーを押します

とりあえずこれでコピーできます



で、ペイントを起動して編集→貼り付けで貼り付けられます

貼り付けのショートカットキーはCtrl+Vです

貼り付けると、全体が選択された状態になります

灰色の部分をクリックするか、鉛筆とか虫眼鏡とかブラシとか何でもいいのでクリックすると全体選択状態は解除できます




画像の大きさの変え方



ウィンドウの大きさを変えるのと同じように、この3つの点をドラッグ&ドロップすることで画像の大きさを変更できます



元の大きさの画像より大きくすると、右パレットの色が大きくなった分の領域を描画します




画像の部分切り取り

スクリーンショットを貼り付けた直後の場合は、まず全体選択状態を解除します

そして、選択ボタンを押して、切り取りたい範囲を選択状態にします



次に、コピーか切り取りをします

コピーのショートカットはCtrl+C

切り取りのショートカットはCtrl+X

切り取りの場合、削除とコピーが同時に行われています

よって本意はコピーです

次にファイル→新規で白紙にします

新規のショートカットはCtrl+N

保存は行いません

再度、部分範囲をコピーしたのを貼り付けるわけですが、新規にした際の元画像サイズに合わせて貼り付けられます



別にその後画像サイズを切り取りサイズに調節してもいいですが

これを回避するには、新規した直後に画像サイズを最小にします



そうしてから貼り付けると、切り取りサイズがそのまま画像サイズになります






UWSC用透過

ペイントソフトに透過コマンドはありますが、成功する時と失敗する時があり、私はその違いがよくわかってません

なので、ここではUWSCのための透過技術

UWSCのCHKIMGは第二引数でチェックの種類を選べます

1を入れると左上の1ピクセルが透過色

2を入れると右上

3を入れると左下

4を入れると右下

よって画像についてる透過情報は無視されます

HTMLページに画像を張る時の透過はまぁこんなのです

UWSCでは透過の基準を4端のピクセルで指定できるということです

おいらのデスクトップにはこんなファイルがあります



デスクトップの背景は常に変わるものとして、このファイルが存在するかどうかのチェックをしてみましょう

まず、虫眼鏡で6倍ぐらいにします

見たところ、背景がどれだけ変わったとしても「ガラクタ」のを除いた白い文字の色不動だと考えます



自分で考えるんですよ

なら、この文字を基準にさせよう

ということでまず「ガラクタ」だけ切り取ります



左上は「ガラクタ」の文字が通っていないので左上を透過色としましょう

この場合左下は白い文字が通っているので透過色には使えません

背景をどの色でもいいので塗りつぶします



これで透過色を考慮した判定用画像の完成です




拡張子

FC2ブログはファイルアップロードができますが、bmp拡張子は使えません

よってjpgにすることによって荒い画像になってしまうのですが、小サイズであればbmpのままアップロードしたいところです

そこで、ペイントでまず名前をつけて保存にします



ファイル名とファイルの種類を選べますが、このファイルの種類をJpegにしたら、画像が粗くなり容量が圧縮されます

しかし、FC2ブログは拡張子のチェックだけなので、別に拡張子がjpgであればデータ部分はbmpでもいいのです

なので、画質を保ちたい場合は、ファイルの種類を24ビットマップにしたまま、ファイル名の拡張子を.jpgにします



これで、画質を粗くせずともbmpの画質を保った画像がアップロードできます


友達にちょっとしたデスクトップ情報を送るのに、bmpで保存するとかなりの容量になるので、画質を求めなければできればjpgにして送ってあげてください

この記事の画像には実際に、jpgの名前にしたbmp画像が使われています
画像が多いので続きに書きました

一部訂正して更新 2008/4/16

DXWNDを使った窓化の方法です
↑タイトルクリックしたら閉じれます

今のところ大部分がヘルプの引用です
簡単な順から書いていきます
目的は自分の理解の進行、ビジターの利用です
関数の概念を伝えるのってムズいな…
目次や色付け等、途中で切れてますが更新。2008/4/7
あとQ&Aコンテンツ追加。

UWSCの最低限の知識
ウィンドウ関数低レベル
やってみる
変数・制御文・関数の最低限の知識
変数
制御文[条件編]
制御文[繰り返し編]
関数[取得編]
資料
Q&A


UWSCの最低限の知識
まずはメモ帳にスクリプトを書く事になります

スクリプトを書き終えたら、名前を付けて保存で、拡張子をuwsにします

uws01.jpg

スクリプトを読み込みます

uws02.jpg

スクリプトを実行します

uws03.jpg


スクリプトは、自分で書かなくても、記録を実行すればウィンドウ関数低レベル程度ぐらいは自動的に書いてくれます。
しかし、OSのちょっとしたフリーズ等で一度でも手順が外れると思い通りの動作をしないことがまちまちです。
クリックさせる座標を手っ取り早く取得したい時ぐらいにしか私は使用していません。


以下基礎知識

省略可能
[ ]で囲ってある部分は省略可能です([ ]かっこは書かないように)

時間
ミリセカンドつまりmsは1/1000秒です
つまり1000ms=1sです

マウス・キーボードのコマンド
CLICKは押してすぐ離します
DOWNは押しっぱなしにします
UPは押しっぱなしの状態を解除します(DOWNしてない場合はCLICKと同様)
できるだけ、DOWNを使った時はUPで解除してから次の行動へ移させましょう

座標
一番左上がx0y0です
UWSCの記録機能もしくはデスクトップ定規を使って座標を計れます

命令型関数
名前と引数で構成されます。
例えば、
name(hikisu)
引数とは、関数を呼ぶ時に与える付加情報です。
関数を呼ぶ事によって、キーボード入力を自動的に行う等の命令が可能です。
関数はいくらでも呼べますが、一つの関数毎に改行が必要です。

コメント
//を行の初めに入れると、スクリプトの中に、コメントを入れる事ができます。




ウィンドウ関数低レベル
マウスを移動したり、クリックしたり、キーボード入力したりできる命令型関数です。


マウス移動
MMV(x,y,[ms])

引数
  x,y:位置 
  ms:実行までの待ち時間 (ミリセカンド)

説明
マウスの移動を命令する。クリック等は一切しません。


//1秒毎にy300を保ち、デスクトップの一番左から右に100pxずつマウス移動
MMV(0,300,1000)
MMV(100,300,1000)
MMV(200,300,1000)
MMV(300,300,1000)
MMV(400,300,1000)
MMV(500,300,1000)





マウスクリック等
BTN(ボタン,状態,[x,y,ms])
引数
  ボタン: LEFT, RIGHT, MIDDLE(ホイールクリック), WHEEL(ホイール回転)
  状態: CLICK(0), DOWN(1), UP(2), WHEEL指定時はノッチ数
  x,y:位置 (省略時は現在位置にて) 
  ms:実行までの待ち時間 (ミリセカンド)

説明
クリックしたり右クリックしたりホイール回転したりできます。


//1秒毎にx300y300の位置にクリッククリックを交互
BTN(RIGHT,CLICK,300,300,1000)
BTN(LEFT,CLICK,300,300,1000)
BTN(RIGHT,CLICK,300,300,1000)
BTN(LEFT,CLICK,300,300,1000)
BTN(RIGHT,CLICK,300,300,1000)
BTN(LEFT,CLICK,300,300,1000)





キーボード
KBD(仮想KEY,[状態,ms])
引数
  仮想KEY: 仮想KEYコード(資料の定義済み仮想キーを参照)
  状態: CLICK(0:デフォルト), DOWN(1), UP(2)
  ms:実行までの待ち時間 (ミリセカンド)

説明
キーボード操作です。文字打ちにもキャラクターの移動にも使えます。


//1秒毎にASDFGHの順にクリック
KBD(VK_A,CLICK,1000)
KBD(VK_S,CLICK,1000)
KBD(VK_D,CLICK,1000)
KBD(VK_F,CLICK,1000)
KBD(VK_G,CLICK,1000)
KBD(VK_H,CLICK,1000)



やってみる
メモ帳を開いて以下の文を挿入

BTN(LEFT,CLICK,300,300,500)
KBD(VK_A,CLICK,100)
KBD(VK_H,CLICK,100)
KBD(VK_O,CLICK,100)
KBD(VK_S,CLICK,100)
KBD(VK_U,CLICK,100)
KBD(VK_W,DOWN,100)
KBD(VK_W,UP,3000)
KBD(VK_ALT,DOWN,1000)
KBD(VK_F4,CLICK,500)
KBD(VK_ALT,UP,100)
KBD(VK_N,CLICK,1000)

名前を付けて保存でaho.uwsという名前にして保存

UWSCを起動してaho.uwsを開く(開き方は上の[UWSCの最低限の知識]を参照)

もう一度、メモ帳を起動して白紙のまま最大化しておく

UWSCの再生ボタンを押す([UWSCの最低限の知識]を参照)

最大化してあるメモ帳にクリックして
ahosuwwww(ry)と入力してALTを押しながらF4を押してALTを離して
保存しないを選んでます

MMVはマウスムーブ
BTNはボタン
KBDはキーボード

いきなり覚えるのは難しいので、最初はコピー&ペーストでOKだと思います

慣れたら手打ちで打てるようになります

また、仮想キーコード(VK_***)も色々探していくうちに、探さなくてもわかるようになります



変数・制御文・関数の最低限の知識
初めての方には少々難しいですが、何度も自分で試す事が大切です

変数
容れ物の事
X = 2
とすればXという変数に数字の2が入り、
X = 2 (Xに2を代入)
X = 2 + X (2+XをXに代入)
とすれば最終的にXには4が入ります
変数の名前は自在に決める事が出来、文字列の代入も可能です
MOZIRETSU = "ABC"

制御文
[もし〜ならば〜する]という状況判断や
[何回〜する]という繰り返しや
永遠ループ[永遠に〜する]もできます

関数
KBD(〜〜)
等も関数の一つです
関数の特徴は( )が必須な事です
( )の中に入れるのは関数によって様々です
入れなくてもいい関数もあります(例えばGETTIME())
種類としては、取得・設定・実行の3種類です(KBDは実行・GETTIMEは取得)

関数
数学的に言えば
f(x)=x+2
f(x)の部分が関数であり、xが引数である。
f(1)とすれば、1+2より結果は3である。
この結果の事を戻り値と言う。
UWSCスクリプトは関数プログラミング言語なので、太文字部分の名称と意味だけでも覚えてください。

文字列
文字の羅列の事
文字列を表す時はダブルクォーテーションで囲む
MOZI = "mozi-"

定数
初めから意味が割り振られている物
CLICKや、LEFTや、VK_RIGHT等です
下の資料で見れます

引数(ひきすう)
関数( )の中に入れる物の事です
引数に変数を使えば
X = 300
Y = 500
BTN(LEFT,CLICK,x,y)
のようにする事ができます

戻り値
関数には戻り値があるのもあります(取得)
変数への代入の形にして、戻り値を受け取ります
X = GETTIME()
とすると、
2000年1月1日からの秒数がXに入ります


これらを使いこなせれば限りなく人間の頭脳に近づかせる事ができます



変数
変数には本来宣言が必要となるが、UWSCでは省略できる
 DIM A (Aという変数を作る)
 A = 1 (Aに1を代入)
 DIM B = 2 (Bという変数を作って2を代入)

変数の名前に2バイト文字(日本語とか)が使えます
 変数 = "2byte"

大文字、小文字 の区別はありません
 X = 2
 Y = x (Yに2を代入)



制御文[条件編]
// 1行の IF 文
 IF 式 THEN 真 [ELSE 偽]

説明
もし〜(条件)ならば…(真)する。そうでなければ…(偽)する。


//もしXが2ならば左クリック。そうでなければ右クリック
IF X = 2 THEN BTN(LEFT,CLICK) ELSE BTN(RIGHT,CLICK)





// IF のブロック文 IFB ENDIF
 IFB 式 [THEN]
   真
 [ELSE]
   偽
 ENDIF

説明
もし〜(条件)ならば…(真)する。そうでなければ…(偽)する。
多くの行動をとらせる時はIF文よりもIFB文を使うとよい


//もしXが50未満ならばahosuと入力。そうでなければkisaiと入力
IFB X < 50 THEN
KBD(VK_A,CLICK,100)
KBD(VK_H,CLICK,100)
KBD(VK_O,CLICK,100)
KBD(VK_S,CLICK,100)
KBD(VK_U,CLICK,100)
ELSE
KBD(VK_K,CLICK,100)
KBD(VK_I,CLICK,100)
KBD(VK_S,CLICK,100)
KBD(VK_A,CLICK,100)
KBD(VK_I,CLICK,100)
ENDIF





// Select Selend 文
 SELECT 式
   CASE 式        // 数値でも文字でも変数でもOK
     処理
   [CASE 式]
     処理
 SELEND

説明
IF文の、[もし〜ならば…する]と同じで、条件が多い場合に使う


//もしXが1なら1、Xが2なら2、Xが3なら3、Xが4なら4と入力
SELECT X
 CASE 1
  KBD(VK_1,CLICK,100)
 CASE 2
  KBD(VK_2,CLICK,100)
 CASE 3
  KBD(VK_3,CLICK,100)
 CASE 4
  KBD(VK_4,CLICK,100)
SELEND



制御文[繰り返し編]
// For Next 文
 FOR 変数 = 初期値 TO 終了値 [STEP 刻み値]
     処理
 NEXT

説明
同じような行動を繰り返したい時に使います
初期値が終了値になるまで1ずつ足して処理を繰り返します
STEPを指定すれば10ずつ足す事も1ずつ減らす事も可能です


//x300y300の位置から10ずつ右へx500y300の位置までマウス移動
FOR X = 300 TO 500 STEP 10
MMV(X,500,100)
NEXT





// While Wend 文
 WHILE 式           // 式が True の間実行
     処理
 WEND

説明
永遠ループにはこれをよく使います
条件を満たすまでループさせたい時にも使えます


//永遠に左クリック
WHILE TRUE
 BTN(LEFT,CLICK,300,300,100)
WEND





// Repeat Until 文
 REPEAT
     処理
 UNTIL 式           // 式が False の間実行

説明
WHILEのFALSEバージョン
永遠ループにも条件を満たすまでループさせたい時にも使えます


//永遠に左クリック
REPEAT
 BTN(LEFT,CLICK,300,300,100)
UNTIL FALSE



関数[取得編]
// 指定Window の ID を返す
戻値 = GETID( タイトル, [クラス名, 待ち時間秒])
引数
  タイトル: 識別したいWindowのタイトル (タイトルの一部分だけでもOK)
  クラス名: 区別に必要でなければ省略して構いません (前方一致でのみ部分指定可)
  待ち時間秒: 確認できるまで指定された秒数待ちます (0.01〜)
           0: 0.1〜10秒まで状況や負荷により自動判断 (デフォルト)
          -1: 無期限待ち

戻値
  そのWindowを識別するID (NGの時は -1)

 ※ GETID は始めに完全一致のウィンドウを探します
    見つからなければ次に部分一致のウィンドウを探します

説明
タイトル名から、そのウィンドウのIDを取得します
そのIDを使って
さらにそのウィンドウの細かい情報を取得したり
そのウィンドウに対して直接実行したりできます


//電卓のIDを取得する(起動していなければ戻り値は-1)
ID = GETID("電卓",,1)
FUKIDASI(ID,300,300)




// キャプション文字やリスト等を全てゲット
戻値 = GETITEM( ID,種別,[番号])
引数
  ID: Windowを識別するID
  種別:
     ITM_BTN      // ボタン、チェックボックス、ラジオボタン
     ITM_LIST      // リストボックス、コンボボックス
     ITM_TAB      // タブコントロール
     ITM_MENU     // メニュー
     ITM_TREEVEW   // ツリービュー
     ITM_LSTVEW    // リストビュー
     ITM_EDIT      // エディトボックス
     ITM_STATIC    // スタティク
     ITM_STATUSBAR // ステータスバー
     ITM_TOOLBAR   // ツールバー
  番号: ITM_LIST、ITM_TREEVEW、ITM_LSTVEW 複数存在時は左上からのコントロール順番を指定 (-1にて全コントロール取得)
戻値
  ゲットした数を返す
  取得した情報は配列変数の ALL_ITEM_LIST[ ] に格納される (配列はゼロから)

説明
特定のコントロールの数を取得できます
また、ALL_ITEM_LIST[ ]には取得した情報が格納されており、
ボタンの名前や入力ウィンドウに入ってる文字等が取得できます


//電卓のボタンの名前をすべて取得する
DIM messege
ID = GETID("電卓")
KAZU = GETITEM(ID,ITM_BTN)
FOR X = 0 TO KAZU-1
 messege = messege + ALL_ITEM_LIST[X]
 FUKIDASI(messege,300,300)
NEXT





// 指定位置の色を得る
戻値 = PEEKCOLOR( X, Y )
引数
  X、Y: 座標 X、Y
戻値
  指定位置の色情報 (BGR値)

 ※BGR値 例) 青:$FF0000、緑:$00FF00、赤:$0000FF、オレンジ:$80FF、黄:$FFFF

説明
そのまんま指定位置の色を得れます
マウス座標を座標で取得できるので工夫すれば色の取得ソフトの代わりになります


//x300y300の位置の色を取得する
FUKIDASI(PEEKCOLOR(300,300),300,300)





// 指定画像が画面上にあるかチェック あればその位置を返す
戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2] )
引数
  画像名: 画像ファイル名 (BMP形式のみ)
  透過色/色無視: 0: 指定なし (デフォルト)
             1: 左上、2:右上、3:左下、4:右下 の1ピクセルの色を透過色として処理
             -1: 色を無視して形でチェックする
  x1, y1, x2, y2: サーチ範囲
戻値
  有ればTRUE、無ければFALSE
  TRUE の場合は見つかった座標を特殊変数 G_IMG_X、 G_IMG_Y に格納  

説明
デスクトップに画像と一致する部分があるかどうか探す
見つけたら、その座標をG_IMG_X、 G_IMG_Y に格納されます
結構便利で、ゲーム等に使いやすい
(敵の画像が近づいたら戦闘マクロ開始とか単純に敵キャラクリックとか)
用意する画像の作成テクニックについてはこちら



//メモ帳のアイコンがあれば左クリック
Ifb CHKIMG("メモ帳アイコン.bmp") = TRUE THEN
  BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
Endif




資料

予約語&関数一覧

// 構文
DIM PUBLIC CONST IF THEN ELSE IFB ELSEIF ENDIF SELECT CASE DEFAULT SELEND FOR
NEXT TO STEP WHILE WEND REPEAT UNTIL CALL BREAK CONTINUE EXIT PRINT AND OR XOR
MOD PROCEDURE FUNCTION FEND RESULT VAR DEF_DLL OPTION THREAD CLASS ENDCLASS
THIS GLOBAL WITH ENDWITH TEXTBLOCK ENDTEXTBLOCK HASHTBL TRY ENDTRY EXCEPT FINALLY

// ウィンドウ関連
GETID CTRLWIN CLKITEM SCKEY INPUT SENDSTR GETSTR SETSLIDER GETALLWIN STATUS MSGBOX
FUKIDASI CHKBTN MOUSEORG PEEKCOLOR CHKIMG SAVEIMG GETITEM MUSCUR POSACC POPUPMENU

// 制御関数
EXEC SLEEP DOSCMD GETTIME SOUND CHKSND POFF KINDOFOS GETKEYSTATE
LOCKHARD STOPFORM LOGPRINT

// システム関数
GETCTLHND IDTOHND HNDTOID

// ウィンドウ関数低レベル
MMV BTN KBD ACW

// 文字操作
COPY LENGTH POS COPYB LENGTHB POSB CHKNUM VAL FORMAT REPLACE CHGMOJ TRIM CHR ASC
ISUNICODE STRCONV TOKEN BETWEENSTR

// 配列操作
RESIZE SETCLEAR

// ファイル
FOPEN FCLOSE FGET FPUT FDELLINE GETDIR DROPFILE

// INIファイル
READINI WRITEINI DELETEINI

// COMオブジェクト
CREATEOLEOBJ GETACTIVEOLEOBJ GETOLEITEM OLEEVENT COM_ERR_IGN COM_ERR_RET

// 音声認識・合成
SPEAK RECOSTATE DICTATE

// IE操作関連
IEGETDATA IESETDATA IEGETSRC IELINK ENCODE DECODE

// フォーム画面
CREATEFORM GETFORMDATA SETFORMDATA

// Excel操作関連
XLOPEN XLCLOSE XLACTIVATE XLSHEET XLGETDATA XLSETDATA

// 数学関数
RANDOM INT CEIL ABS ZCUT ROUND SQRT POWER EXP LN LOGN SIN COS TAN ARCSIN ARCCOS ARCTAN

//特殊変数
PARAM_STR[] ALL_WIN_ID[] ALL_ITEM_LIST[] GETDIR_FILES[] ALL_OLE_ITEM[]
GET_WIN_DIR GET_SYS_DIR GET_CUR_DIR GET_APPDATA_DIR GET_UWSC_DIR GET_UWSC_VER GET_UWSC_NAME
COM_ERR_FLG G_IMG_X G_IMG_Y G_SCREEN_W G_SCREEN_H G_SCREEN_C G_MOUSE_X G_MOUSE_Y
G_TIME_*(GETTIME関数)

// 定数
TRUE FALSE NULL EMPTY NOTHING ERR_VALUE GET_SLIDER GET_MENU_HND GET_SYSMENU_HND
ACTIVATE CLOSE CLOSE2 HIDE SHOW MIN MAX NORMAL TOPMOST NOTOPMOST
CLICK DOWN UP LEFT RIGHT MIDDLE WHEEL F_READ F_WRITE F_EXISTS F_LINECOUNT F_ALLTEXT
CLK_*(CLKITEM関数) STR_*(GETSTR) BTN_*(MSGBOX) SLCT_*(SLCTBOX) ITM_*(GETTIME) ST_*(STATUS)
CUR_*(MUSCUR) ACC_*(POSACC) P_*(POFF) TGL_*(GETKEYSTATE) GET_*(GETID) SC_*(STRCONV)
FOM_*(CREATEFORM) CODE_*(ENCODE)



定義済み仮想キー

VK_START
VK_WIN
VK_ALT
VK_CTRL
VK_RCTRL
VK_ESC
VK_BACK  // BackSpace
VK_TAB
VK_CLEAR
VK_RETURN   // Enter
VK_SHIFT
VK_RSHIFT
VK_CONTROL
VK_MENU
VK_PAUSE
VK_CAPITAL   // CapsLock
VK_KANA
VK_FINAL
VK_KANJI
VK_CONVERT   // 変換
VK_NONCONVERT   // 無変換
VK_ACCEPT
VK_MODECHANGE
VK_ESCAPE
VK_SPACE
VK_PRIOR   // PageUp
VK_NEXT   // PageDown
VK_END
VK_HOME
VK_LEFT   // カーソル
VK_UP
VK_RIGHT
VK_DOWN
VK_SELECT
VK_PRINT
VK_EXECUTE
VK_SNAPSHOT   // PrintScreen
VK_INSERT
VK_DELETE
VK_HELP
VK_APPS   // コンテキストメニュ
VK_MULTIPLY   // *
VK_ADD   // +
VK_SEPARATOR
VK_SUBTRACT   // -
VK_DECIMAL
VK_DIVIDE   // /
VK_NUMPAD0 〜 9
VK_F1 〜 VK_F12
VK_NUMLOCK
VK_SCROLL   // ScrollLock
VK_SLEEP
// 以下Win2000/XP
VK_BROWSER_BACK   // ブラウザ制御
VK_BROWSER_FORWARD
VK_BROWSER_REFRESH
VK_BROWSER_STOP
VK_BROWSER_SEARCH
VK_BROWSER_FAVORITES
VK_BROWSER_HOME
VK_VOLUME_MUTE   // 音量制御
VK_VOLUME_DOWN
VK_VOLUME_UP
VK_MEDIA_NEXT_TRACK   // メディア制御
VK_MEDIA_PREV_TRACK
VK_MEDIA_STOP
VK_MEDIA_PLAY_PAUSE
VK_LAUNCH_MEDIA_SELECT
VK_LAUNCH_MAIL   // メーラ起動
VK_LAUNCH_APP1   // アプリ起動
VK_LAUNCH_APP2
VK_OEM_PLUS
VK_OEM_COMMA
VK_OEM_MINUS
VK_OEM_PERIOD
VK_OEM_1 〜 8
VK_OEM_RESET
VK_OEM_JUMP
VK_OEM_PA1 〜 3



Q&A
多種の画像から、それぞれの判定をしたいが、
if chkimg("x1.bmp") then kbd(vk_y1)
if chkimg("x2.bmp") then Kbd(vk_y2)
if chkimg…
といった書き方より、スマートな書き方はありますか?

dim img[9] = "x1.bmp","x2.bmp","x3.bmp"...
dim key[9] = vk_y1,vk_y2,vk_y3...

for i = 0 to 9;sleep(0.1)
 if chkimg(img[i]) then kbd(key[i])
next




i++やi+=1は使えませんか?

無理。
i = i + 1
と素直に書いてください。




if分の条件文で一致しない時、つまりイコールの反対を使うにはどうしたら?

<>を使います。
//xが0じゃない時、終了
if x <> 0 then exitexit




IEのCOMオブジェクトを使用する時の
IE.VisibleやIE.document.body.innerText等の命令一覧がほしい。

IE.の後に続く命令一覧は
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/ie.htmのページが参考になると思います。
それぞれの説明はありませんが、和訳すれば大体わかります。
例えばIE.Quit()は閉じる。

IE.document.の後に続く命令一覧は
http://msdn2.microsoft.com/en-us/library/aa752574.aspx
英語ですが、詳しく解説されているのはここです。
日本語のmsdnライブラリを見つけた方は教えてくださるとありがたいです。

http://www.tohoho-web.com/js/index.htm
日本語ならば、このサイトの25.ドキュメントオブジェクトモデル(DOM)が参考になると思います。
ここでは、document.bodyの解説がありませんが、これはボディータグの中のエレメントを全て取得します。
よって型はこのサイトで言うelementとなります。

その他ちょっとした小技等
http://www.happy2-island.com/vbs/cafe02/capter00701.shtml




For文で使用する変数を変更することはできますか?
for x = 1 to 10
msgbox(x)
x = x - 1
next
msgboxで1を常に表示させるような動作を期待しています。

UWSCではFor文に使われる変数の中身の変更はできないようです。




IEのページ読み込みが完了するまで待機したい。

//COMオブジェクトを使わない場合
// ステータスバーにて表示完了を確認
Procedure 表示完了待ち(id)
Repeat
Sleep(0.2)
Until GETSTR(id, 1, STR_STATUS) = "ページが表示されました"
Fend

//COMオブジェクトを使う場合
//IEオブジェクトがあるとして
Repeat
sleep(0.2)
Until (! IE.busy) and (IE.readyState=4)
世界一ムズいゲーム!

だっておwバンバンw

世界一というには程遠いと思いますが、ちとむずいです

おいらは970deadぐらいでクリアしました

いっぱい死ぬから、ムズいと言いたいのかなぁ

一回触れただけで死ぬのでそんなもんだと思うんですが

確かに腕はかなり痛くなったし、BGMの後半が段々「長島温泉」って連呼してるように聞こえてきたけども

ちなみに二週目挑戦したら97deadぐらいでクリアしました

stage30までありますが25が一番ムズいと思いますがんばれ