Copyright: うみうみ


UWSC

　　　　UWSC　Ver 2.6a 　　　　2002/08/01

　[機能]

　マウスとキーボード入力をスクリプト形式で記録して再生する

　スクリプト言語によりアプリの操作が出来る(ＣＯＭオブジェクトも扱えます）

　開いたウィンドウに対しマウスを自動移動


　インストール

　　解凍して出来たファイルを適当なディレクトリに

　アンインストール

　　レジストリには手を付けていませんのでそのまま削除するだけです

　動作環境

　　Windows　98/NT/2000/XP


サポート

　UWSC

　UWSC はフリーソフトです

　バグ報告、要望等は掲示板へ

　お約束

　　本プログラムより生じた損害に関しては当方は一切責任を負いません

　サポートホームページ

　　http://www07.u-page.so-net.ne.jp/ca2/umiumi/

　(C)　うみうみ

　　　　umiumi@ca2.so-net.ne.jp


メイン画面/動作記録と再生

　メイン画面

　　　読込み　保存　　再生　　記録　設定

　動作記録

　　記録ボタンを押してから　STOPボタン　又は　停止ホットキー　が押されるまでの動作を記録します

　　（記録はマウスクリックorキー操作がされるかマウス移動を0.5秒停止して開始した所から始まります)

　　設定にて'余計な時間、マウス移動は記録しない'にチェックがされているとマウス移動や余分な時間は削除されます

　　設定にて'マウス座標を相対座標で記録する'にチェックがされているとマウスの座標はアクティブウィンドウに対しての座標で記録されます

　　保存にて記録をスクリプトファイルとして保存できます

　　（スクリプトですので自分で修正したり制御したりできます）

　再生

　　再生ボタンで再生します

　　スクリプトファイルをドロップしてもOKです

　　引数にスクリプトファイル名を指定してUWSC を起動してもOKです

　　　（この時はスクリプトが終了するとUWSC 自体も常駐せずに終了します）

　　停止ホットキー（デフォルト：Alt +F2)にて中断できます

　　再生ホットキー（デフォルト：Alt +F1)にて一時停止ができます

　ファイルの関連付けによる実行

　　スクリプトファイル（***.UWS)をダブルクリック

　　'ファイルを開くアプリケーションの選択'　ダイアログが出る

　　'その他(T)...'　のボタンをクリックしてUWSC.exe の場所を指定する

　　これで　スクリプトファイル（***.UWS)のアイコンが変り　ダブルクリックにて実行できます

　　　（この時はスクリプトが終了するとUWSC 自体も常駐せずに終了します）

　　　（多重起動もOKです、[UWSC.ＩＮＩファイルのNotMultiplex に１をセットすると多重起動は禁止にできます]）

　　注意：スペースのあるディレクトリで関連付けをした場合に不完全な時があります

　　　　その場合は以下のように自分で設定して下さい

　　　　エクスプローラより　表示　->　フォルダ オブション

　　　　UWSファイル を選択して 編集ボタン

　　　　アクションの 編集ボタン

　　　　アクションを実行するアプリケーション に　"%1"　を付加

　　　　".....\UWSC.exe" "%1"

　　　　とする


POP読込み

　スクリプトファイルを読み込みます

　拡張子は　.UWS　のみです


POP保存

　動作記録をスクリプトファイルとして保存します


POP再生

　動作記録を再生します


POP記録

　動作（マウス、キーボード）の記録を開始します


POP設定

　各種の設定をするためのメニュがでます

　※設定メニュ


設定メニュ/設定画面

　　設定メニュ

　　設定画面


POPタスクトレイへ

　タスクトレイに格納されます

　タスクトレイ上のアイコンで左クリック

　　　ランチメニュがでます

　タスクトレイ上のアイコンで右クリック

　　　設定メニュが出ます

　タスクトレイ上のアイコンで左ダブルクリック

　　　タスクトレイから出て通常状態になります

　タスクトレイ上で終了すると次回起動時はタスクトレイ起動になります


POP余分な動作

余分な時間、マウス移動は記録しない

　ここがチェックされていれば　マウス移動や余分な時間は記録されません

マウス座標を相対座標で記録する

　ここがチェックされていれば　マウスの座標はアクティブウィンドウに対しての座標で記録されます

　（後で位置調整の為スクリプトを修正するのであれば、こちら方が良いでしょう）


POPマウスの自動移動

　マウスの自動移動

　　ここがチェックされていれば開いたWindow に対しマウスが勝手に動きます

　初めて開くWindow であればデフォルトボタンないしは左上のコントロールを目指して移動します

　２回目以降は１秒以上マウスが停止していた場所を覚えておりそこに移動します

　除外ウィンドウ設定にて自動移動から除外したいウィンドウを指定できます

　（指定はタイトル/クラス名どちらか一方だけでも可）

　（タイトルは一部分だけでも可）


　スケジュール設定

　スクリプトのスケジュールを設定できます

　スクリプトファイル名を設定してタイマー設定にて起動時間を指定して下さい

　ビープ音で知らせるがチェックであればスクリプト起動時にビープ音で知らせて間を２秒程取ります

　※インターバル

　　０時０分を基準に計算をしています　(UWSC起動時からの時間ではない)

　※式による設定

　　自分で式を記述する事により細かな時間設定が決められます

　　使える変数

　　　　YY (年)、　MM (月)、　DD (日)、　HH (時)、　NN (分)、　WW (曜日)

　　　　　　※曜日は日曜=0,.....土曜=6です

　　注意：チェックは分単位でされます NN(分)の設定を忘れずに

　　Ex..)

　　　　 (INT(dd/7) mod 2) = 0 and ww=1 and hh=0 and nn=0      // 隔週月曜日０時０分

　　　　WW=2 AND (HH=0 OR HH=12) AND NN=0                    // 火曜日の0時と１２時

　　　　YY=2001 AND MM=1 AND DD=1 AND HH=0 AND NN=0   // 2001年開始


POP再生ボタンホットキ

　ホットキー

　再生：　再生ボタンのホットキーを設定できます

　停止：　再生/記録の停止ホットキーを設定できます

　記録：　記録ボタンのホットキーを設定できます


ランチメニュ

　ランチメニュ　（スクリプト ランチャー）

　スクリプトファイルを 登録しておき 選択起動できます

　ホットキー設定により出現　タスクトレイ時は左ボダンにて出現

一段階層化して設定可能　(よって最大登録数は10*10コ)


スクリプト構文

　スクリプトについて

　uwsc.exe　は、スクリプトエンジンを搭載してます

　自分でスクリプトを書く事により、かなり高度な制御が可能です

==============================================

＜変数＞

　2バイト文字が使えます

　多次元配列が使えます

　数値と文字列の型区別はありません

　大文字、小文字　の区別はありません

　ローカル変数、グローバル変数の区別があります

　　ローカル変数には宣言は要りません

　　　 (Option Explicit がある場合は必要：　DIM 変数名)

　　グローバル変数には宣言が必要：　　PUBLIC 変数名

　　多次元配列には宣言が必要：　　　　DIM 変数名[数]

　　　(配列での初期値宣言は一次元のみ可：　　DIM X[3]=1,2,3 )

==============================================

＜文字処理＞

　文字列は必ず"ダブルコーテイション"で括ってください

　文字列の比較演算時は大文字、小文字の区別はしません

　文字列の結合演算子は+です

　文字列に改行を含める時は<#CR>、    ”を含める時は<#DBL>です

　文字列長は最大１ＭＢまで

==============================================

＜演算式の優先順位＞

　　()　　　　　　　　　　　　　　　　　　　　　優先順位高い

　　!　　　　　　 (論理否定)

　　*,　/,　MOD

　　+,　-

　　　>,　<,　=,　>=,　<=,　<>

　　AND

　　OR,　XOR　　　　　　　　　　　　　　　　優先順位低い

==============================================

＜コメント＞

　//　から行末までです

==============================================

＜行結合＞

　_　(アンダーバー)　　//　行の最後に付ける事により次の行と結合させます

==============================================

＜マルチステートメント＞

　;　(セミコロン)　　　//　N88Basic的な１行ＩＦ文での変態的使い方はダメ

==============================================

＜組込み定数＞

　True　　　　//　1

　False　　　　//　0

==============================================

＜特殊文字＞

　<#CR>　　　//　改行コードを表す

　<#DBL>　　//　"ダブルコーテイションを表す

==============================================

＜１６進指定＞

　$　　　　　//　$FF =255

==============================================

＜変数宣言の強制＞

　//　スクリプトの先頭で宣言（全ての変数でDIM もしくはPUBLIC 宣言が必要となる）

　OPTION EXPLICIT

==============================================

＜スクランブル＞

　//　可読できないようスクリプトにスクランブルをかける事ができます

　コマンドプロンプトにて以下のように実行

　UWSC　/A　xxxxx.uws　yyyyy.uws

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

　もしくは

　　UWSC　/A　xxxxx.uws

　　この場合xxxxx.uws をxxxxx.org にリネームされxxxxx.uws が生成

==============================================

＜制御文＞　　[　]　内は省略可能

　　//　１行のIF文

　　IF　式　THEN　真　[ELSE　偽]

　　（例

----------------------------------------------

　//　IF　のブロック文　IFB　ENDIF

　　IFB　式　[THEN]

　　　　真

　　[ELSEIF　式　[THEN]]

　　　　　:

　　[ELSE]

　　　　偽

　　ENDIF

　　（例

----------------------------------------------

　　//　For　Next文

　　FOR　変数　=　初期値　TO　終了値　[STEP　刻み値]

　　　　　　処理

　　NEXT　　　　　　　//　NEXTの後に変数を書いてはダメ

　　例）

----------------------------------------------

　　//　While　Wend文

　　WHILE　式　　　　　　　　　　　//　式が　True　の間実行

　　　　　　処理

　　WEND

　　例）

----------------------------------------------

　　//　Repeat　Until文

　　REPEAT

　　　　　　処理

　　UNTIL　式　　　　　　　　　　　//　式が　False　の間実行

　　例）

----------------------------------------------

　　//　Select　Selend 文

　　SELECT　式

　　　　CASE  式　　　　　　　　//　数値でも文字でも変数でもＯＫ

　　　　　　処理

　　　　[CASE　式]

　　　　　　処理

　　　　[DEFAULT]　　　　　　　//　デフォルト

　　　　　　処理

　　SELEND

　　例）

----------------------------------------------

　　//　Call文　スクリプト(UWSファイル)を呼び出す

　　Call　　UWSファイル名　　　　　　　　　　　　　//　拡張子(uws)は省略可

　　Call　　UWSファイル名.uws(xxx,　xxx,　...)　　//　引数を付けた場合に値はPARAM_STR[]変数に入る

　　例）

----------------------------------------------

　　Break　　　　　FOR,　WHILE,　REPEAT　のループを中断

----------------------------------------------

　　Continue　　FOR,　WHILE,　REPEAT　のループの先頭へ

----------------------------------------------

　　Exit　　　　　　関数を抜ける

　　ExitExit　　　　直ちにプログラムを終了

　　　　　　　　　　　ExitExit 終了コード　　にて終了コードを返せる

----------------------------------------------

　　//　Procedure　-　Fend　　　　手続き型(戻り値なし)

　　Procedure 名(引数,　引数,　var 引数....)　　//Var宣言を付けると引数を変更可能にする(参照引数)

　　　　　　処理

　　Fend

----------------------------------------------

　　//　Function　-　Fend　　　　関数(戻り値あり)

　　Function　名(引数,　引数....)

　　　　　　処理

　　　　　　Result  =戻り値       //Result に戻り値を入れる

　　Fend

　　※配列変数にて配列全体を渡す事はできません

　　例）

----------------------------------------------

　　//　Print文　　　ロギング

　　Print　　　　　表示文

　　表示用のウインドウが１つ勝手に開きます

　　又、同じ内容をUWSC.LOGに保存　(MAX：2００行で古いのから捨てられる)

　　例）

----------------------------------------------

　　//　DLL 使用定義

　　DEF_DLL 関数名(型, 型, ...): 戻り型: DLL名

　　型： int、long、bool、uint、hwnd、string、pchar、float、double、word、dword、byte、char、boolean、longlong、Extended、WString

　　　　参照引数（ポインター渡し)として使う場合は　Var宣言を付ける

　　※int=long=bool(4byte)、 string=pchar、 dword=uint、 char=boolean(1byte)

　　　　WString： UWSC内部はSJISでありUNICODEとは自動変換

　　　　NULLPOINTER： ヌルポインタを渡す

　　例）


スクリプト関数

　関数

　[　]　内は省略可能

=================================================

//　ウィンドウ関連

-------------------------------------------------

　//　指定Window　の　ID　を返す

　戻値　=　GETID(　タイトル,　[クラス名,　待ち時間秒,　MDI子タイトル]　)

　引数

　　タイトル：　識別したいWindowのタイトル（他のWindowと区別できれば一部分だけでOK)

　　クラス名：　区別に必要でなければ省略して構いません

　　待ち時間秒：　確認できるまで指定された秒数待ちます(0.01～)

　　　　　　　　　　　0：　0.1～10秒まで状況や負荷により自動判断（デフォルト）

　　　　　　　　　　　-1：　無期限待ち

　　MDI子タイトル：　MDIウィンドウ中の子ウィンドウタイトル

　戻値

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

　※　GetID()は始めに完全一致のウィンドウを探します

　　　見つからなければ次に部分一致のウィンドウを探します

　※　GETID(GET_ACTIVE_WIN)　とすると現在のトップアクティブウィンドウを返します

　　　GET_FROMPOINT_WIN　指定にて現在のマウスカーソル下のウィンドウ

　　　GET_THISUWSC_WIN　　UWSC自身

　　　GET_LOGPRINT_WIN　　ログ表示用ウィンドウ

　例）

-------------------------------------------------

　//　アイテムのクリック

　//　(ボタン、メニュー、チェックボックス、ラジオボタン、リストボックス、コンボボックス、タブコントロール、ビューリスト)

　戻値　=　CLKITEM(　ID,　アイテム名,　[種別,　チェックOn/Off,　番号]　)

　引数

　　ID：　Windowを識別するID

　　アイテム名：　ボタン、チェックボックス、ラジオボタンのキャプションの文字

　　　　　　　　　　　もしくは　リストボックス、コンボボックスの選択名

　　　　　　　　　　　もしくは　タブ名

　　　　　　　　　　　もしくは　メニュー項目名

　　　　　　　　　　　もしくは　ツリービュー項目、リストビュー項目

　　種別：　チェックするアイテム種別

　　　　　　　　　　CLK_BTN　　(ボタン、チェックボックス、ラジオボタン）

　　　　　　　　　　CLK_LIST　　(リストボックス、コンボボックス)

　　　　　　　　　　CLK_TAB　　(タブコントロール)

　　　　　　　　　　CLK_MENU　(メニュー)

　　　　　　　　　　CLK_TREEVEW　(ツリービュー)

　　　　　　　　　　CLK_LSTVEW　　(リストビュー)

　　チェックOn/Off：　チェックボックスとメニュのチェック、クリック　On=True(1)、　OFF=False(0)　　(デフォルトはOn)

　　番号：　同名のアイテム名がある場合のオブジェクト順番（左上から数えたオブジェクト順番[１から指定]）

　戻値

　　True：正常,　False：処理不能

　※アイテム名の最後に付くニーモニック[(&A)、(&B)...、(&C):等]は要りません

　※種別：　省略された場合は　BTN　->　LIST　->TAB　->MENU　->TREEVEW 　->LSTVEW　の順でサーチ

　※文字省略指定： CLK_LIST or CLK_SHORT のような形で　CLK_SHORT　を付加すると部分一致にて検索

　※メニュー、ツリービューにて： \　にてパス指定表記可(ぶつかる物がなければパスは必要なし)　　Ex.：:aaa\bbb\ccc

　例）

-------------------------------------------------

　//　ボタン類（チェックボックス、ラジオボタン）の状態を返す

　戻値　=　CHKBTN(　ID,　アイテム名)

　引数

　　ID：　Windowを識別するID

　　アイテム名：　ボタン、チェックボックス、ラジオボタンのキャプションの文字

　戻値

　　　-1 ： 存在しないか無効状態

　　　0  ： OFF

　　　1  ： ON

　　　2  ： チェックボックスにて淡色状態

　例）

-------------------------------------------------

　//　Window　コントロール

　CTRLWIN(　ID,　命令)

　引数

　　ID：　Windowを識別するID

　　命令

　　　　CLOSE (終了)

　　　　ACTIVATE (アクティブ )

　　　　HIDE (非表示)

　　　　SHOW (表示)

　　　　MIN (アイコン化)

　　　　MAX (最大化)

　　　　NORMAL (サイズ戻す)

　例）

-------------------------------------------------

　//　文字の送信

　SENDSTR(　ID,　文字列,　[番号,　送信モードフラグ]　)

　引数

　　ID：　Windowを識別するID

　　命令：　送りたい文字列

　　　　　　　ID　=　0　であれば　クリップボードへ

　　番号：　左上から数えたエディトコントロールの順番（１から指定）

　　　　　　　(デフォルトはフォーカスを持ったエディトコントロール）

　　送信モードフラグ：

　　　　　　　False：一文字づつ追加する形で送信（デフォルト)

　　　　　　　True：一括で文字を送信して置き換える

　例）

-------------------------------------------------

　//　文字列の取得

　戻値　=　GETSTR(　ID,　[番号,　種別]　)

　引数

　　ID：　Windowを識別するID

　　　　　(ID　=　0　であれば　クリップボードから)

　　番号：　左上から数えたエディトコントロールの順番（１から指定）

　　　　　　　(デフォルトはフォーカスを持ったエディトコントロール）

　　種別：　０：エディトコントロール、　１：スタティクコントロール

　　　　　　　(デフォルトは０：エディトコントロール）

　戻値

　　取得した文字列

　例）

-------------------------------------------------

　//　インプットボックス

　戻値　=　INPUT(　表示メッセージ,　[デフォルト値,　パスワードフラグ,　X,　Y]　)

　引数

　　表示メッセージ：　インプットボックスに表示するメッセージ

　　デフォルト値：　デフォルトの値 として表示

　　パスワードフラグ：　True にすると文字は全てアスタリスク表示(デフォルトFalse)

　　X,　Y：　表示位置　(デフォルトは中央)

　戻値

　　入力されたデータ

　例）

-------------------------------------------------

　//　メッセージボックス

　戻値　=　MSGBOX(　メッセージ,　[表示ボタン,　X,　Y]　)

　引数

　　メッセージ：　表示メッセージ

　　表示ボタン：　ボタン種別　（or　で複数指定：　デフォルトはBTN_OK)

　　　　　　　　　　BTN_YES,　BTN_NO,　BTN_OK,　BTN_CANCEL,　BTN_ABORT(中止),　BTN_RETRY(再試行）,　BTN_IGNORE(無視)

　　X、Y：　表示位置 X、Y　　（デフォルトは画面中央)

　戻値

　　押されたボタン種別

　例）

-------------------------------------------------

　//　セレクトボックス

　戻値　=　SLCTBOX(　種別,　タイムアウト秒,　メッセージ,　項目１,　[項目２,　項目３,　...]　)

　もしくは

　戻値　=　SLCTBOX(種別,　タイムアウト秒,　x,　y,　メッセージ,　項目１,　[項目２,　項目３,　...]　)

　引数

　　種別： SLCT_BTN (ボタン）、SLCT_CHK (チェックボックス）、SLCT_RDO (ラジオボタン）、SLCT_CMB (コンボボックス）　のどれか

　　タイムアウト：　指定時間(秒)を過ぎるとゼロを返します(０指定でタイマーは無効）

　　x,　y：　第３引数と第４引数が数値であればX位置,Y位置指定と判断します(省略型は中央表示)

　　メッセージ：　表示メッセージ

　　項目：　選択項目名

　戻値

　　１つ目が選択されたならば　SLCT_1 が返される

　　２つ目が選択されたならば　SLCT_2 が返される

　　　　　　　　　：

　　SLCT_CHK (チェックボックス）選択時はビット演算して返される

　※閉じボタンによる終了時は-1を返してくる（SLCT_CHKにてビットチェックする場合は注意）

　※項目数は最大30まで

　例）

-------------------------------------------------

　//　キャプション文字やリスト等を全てゲット

　戻値　=　GETITEM(　ID,　種別,　[番号,　リストビュー列]　)

　引数

　　ID：　Windowを識別するID

　　種別：　種別

　　　　　　　　ITM_BTN　　(ボタン、チェックボックス、ラジオボタン）

　　　　　　　　ITM_LIST　　(リストボックス、コンボボックス)

　　　　　　　　ITM_TAB　　(タブコントロール)

　　　　　　　　ITM_MENU　(メニュー)

　　　　　　　　ITM_TREEVEW　(ツリービュー)

　　　　　　　　ITM_LSTVEW　　(リストビュー)

　　　　　　　　ITM_EDIT　　(エディトボックス)

　　　　　　　　ITM_STATIC　　(スタティク、ステータス)

　　番号：　ITM_LIST、ITM_TREEVEW、ITM_LSTVEW　複数存在時は左上からのコントロール順番を指定

　　リストビュー列：　リストビュー指定時のリストビューの列指定

　戻値

　　ゲットした数を返す

　　取得した情報は配列変数の　ALL_ITEM_LIST[]　に格納される(配列はゼロから)

　例）

-------------------------------------------------

　//　吹出し

　FUKIDASI(　メッセージ,　x,　y,　[向き,　フォントサイズ,　フォント名,　文字色,　背景色]　)

　引数

　　メッセージ：　表示メッセージ

　　x,　y：　位置

　　向き：　0：嘴なし,　1：上嘴,2：下嘴,3：左嘴,4：右嘴

　　フォントサイズ： 文字フォントサイズ

　　フォント名： フォント名

　　文字色： RGB値にて指定

　　背景色： RGB値にて指定

　※引数なしで吹出しOFF

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

　例）

-------------------------------------------------

　//　スライダー(トラックバー、スクロールバー)の値を設定する（もしくはゲットする)

　戻値　=　SETSLIDER(　ID,　値,　[番号]　)

　引数

　　ID：　Windowを識別するID

　　値： 設定する値　　（値をゲットしたい時はGET_SLIDER を設定）

　　番号：　左上からのコントロールの順番（１から指定）

　戻値

　　True：正常,　False：処理不能

　　GET_SLIDER 指定時は値を返す

　例）

-------------------------------------------------

　//　ショートカットキーの実行

　SCKEY(　ID,　キー,　[キー,　キー,　キー,　...]　)

　引数

　　ID：　Windowを識別するID

　　キー：　アルファベット１文字もしくは仮想キー(VK_*)

　※動作としてVK_SHIFT,　VK_CTRL,　VK_ALT,　VK_WIN のキー指定は押し下げ状態のまま処理する

　例）

-------------------------------------------------

　//　全ウィンドウのＩＤをゲット

　戻値　=　GETALLWIN()

　引数なし

　戻値

　　ゲットしたWindowの数

　　習得したIDは配列変数の　ALL_WIN_ID[]　に格納される(配列はゼロから)

　例）

-------------------------------------------------

　//　ウィンドウの各種状態を返す

　戻値　=　STATUS(　ID,　取得したいもの)

　引数

　　ID：　Windowを識別するID

　　取得したいもの： 以下の定数

　　　　ST_TITLE：　タイトルを返す

　　　　ST_CLASS：　クラス名を返す

　　　　ST_X：　　　　X座標を返す

　　　　ST_Y：　　　　Y座標を返す

　　　　ST_WIDTH：　幅を返す

　　　　ST_HEIGHT：　高さを返す

　　　　ST_CLX：　　　　クライアント領域のX座標を返す

　　　　ST_CLY：　　　　クライアント領域のY座標を返す

　　　　ST_CLWIDTH：　クライアント領域の幅を返す

　　　　ST_CLHEIGHT：　クライアント領域の高さを返す

　　　　ST_PARENT：　親ウィンドウのIDを返す、親が無ければ-1

　　　　ST_ICON：　　　アイコン状態であればTrue、でなければFalse

　　　　ST_VISIBLE：　通常の表示状態であればTrue、でなければFalse

　　　　ST_ACTIVE：　アクティブ状態であればTrue、でなければFalse

　　　　ST_BUSY：　　ビジー状態であればTrue、でなければFalse

　例）

-------------------------------------------------

　//　マウス座標を相対座標にする

　MOUSEORG(　ID,　[クライアント領域フラグ ]　)

　引数

　　ID：　Windowを識別するID

　　クライアント領域フラグ ：

　　　　　False：ウィンドウ位置（デフォルト）

　　　　　True：クライアント領域の位置を基準にする

　以降のMMV()、BTN()、PEEKCOLOR()、CHKIMG()関数の座標を指定ウィンドウを基準にしたものにする

　スクリーン座標に戻す時はゼロを指定　MouseOrg(0)

-------------------------------------------------

　//　指定位置の色を得る

　戻値　=　PEEKCOLOR(　X,　Y )

　引数

　　X、Y：　位置 X、Y

　戻値

　　指定位置の色情報　（BGR値）

　※画面がTrueColor でないとアクティブウィンドウが変った時に値が変化する可能性がある

　例）

-------------------------------------------------

　//　指定画像が画面上にあるかチェック あればその位置を返す

　戻値　=　CHKIMG(　画像名,　[透過色/色無視,　x1,　y1,　x2,　y2]　)

　引数

　　画像名：　画像ファイル名(BMP形式のみ)

　　透過色/色無視：　0:指定なし(デフォルト)

　　　　　　　　　　　　　　1:左上、2:右上、3:左下、4:右下　の１ピクセルの色を透過色として処理

　　　　　　　　　　　　　　-1:色情報を無視してチェックする

　　x1,　y1,　x2,　y2：　サーチ範囲

　戻値

　　有ればTRUE、無ければFALSE

　　TRUE の場合は見つかった座標を特殊変数　G_IMG_X、 G_IMG_Y に格納

　例）

　※注　Ver2.6よりサーチ範囲もMOUSEORG関数による相対座標指定の影響を受ける

-------------------------------------------------

　//　画像の保存

　SAVEIMG(　画像名,　[ID,　x,　y,　幅,　高さ,　クライアント領域]　)

　引数

　　画像名：　保存ファイル名(BMP形式)

　　ID：　Windowを識別するID（０であればスクリーン全体）

　　X、Y：　位置

　　幅,高さ：　大きさ

　　クライアント領域：

　　　　　False：指定ウィンドウ領域（デフォルト）

　　　　　True：クライアント領域

　例）

-------------------------------------------------

　//　マウスカーソル種別を返す

　戻値　=　MUSCUR()

　引数なし

　戻値

　　CUR_APPSTARTING （1）： 砂時計付き矢印カーソル

　　CUR_ARROW （2）　　　　　： 標準矢印カーソル

　　CUR_CROSS （3）　　　　　： 十字カーソル

　　CUR_HAND （4）　　　　　　： ハンドカーソル（Windows2000以降）

　　CUR_HELP （5）　　　　　　： クエスチョンマーク付き矢印カーソル

　　CUR_IBEAM （6）　　　　　： アイビーム(縦線)カーソル

　　CUR_NO  （8）　　　　　　　： 禁止カーソル

　　CUR_SIZEALL  （10）　　　： ４方向矢印カーソル

　　CUR_SIZENESW （11）　　： 斜め左下がりの両方向矢印カーソル

　　CUR_SIZENS （12）　　　　： 上下両方向矢印カーソル

　　CUR_SIZENWSE （13）　　： 斜め右下がりの両方向矢印カーソル

　　CUR_SIZEWE （14）　　　　： 左右両方向矢印カーソル

　　CUR_UPARROW  （15）　： 垂直の矢印カーソル

　　CUR_WAIT （16）　　　　　： 砂時計カーソル

　※ ユーザー定義カーソルはハンドル値をマイナスにして返す（起動毎に変化）

=================================================

//　制御関数関連

-------------------------------------------------

　//　アプリの起動

　戻値　=　EXEC(　exe名,　[同期フラグ,　X,　Y,　幅,　高さ]　)

　引数

　　exe名：　起動したいアプリ名

　　同期フラグ：

　　　　　False：待たない(デフォルト)

　　　　　True：そのアプリが終了するまで待つ

　　X：　Window位置X

　　Y：　Window位置Y

　　幅：　Window幅

　　高さ：　Window高さ

　戻値

　　そのWindowを識別するID　を返してきます

　　終了待ちが指定された場合は　そのアプリの終了コードを返してきます

　例）

　※注　Explorer等　別プロセスを呼ぶものは　期待どおりに戻値を返さない事がある

-------------------------------------------------

　//　スリープ

　SLEEP（　秒 )

　引数

　　秒：　スリープする秒数(最小=0.01)

　例）

-------------------------------------------------

　//　DOSコマンドの実行

　DOSCMD(　DOSコマンド,　[同期フラグ,　画面表示]　)

　引数

　　DOSコマンド：　DOSのコマンド

　　同期フラグ：

　　　　　False：終了を待つ(デフォルト)

　　　　　True：待たずに戻る

　　画面表示：

　　　　　False：DOS画面を表示しない(デフォルト)

　　　　　True：表示する

　例）

-------------------------------------------------

　//　サウンドの再生

　SOUND(　ファイル名)

　引数

　　ファイル名：　ファイル名(WAV,　MID,　AVI等)

　　　（ファイル名を省略すると再生をストップします）

　　　（ファイル名=BEEPとするとBEEP音です)

　例）

-------------------------------------------------

　//　日付、時間の取得（時間変数に時間を設定する）

　戻値　=　GETTIME([±n日]　)

　引数

　　±n日：　nを指定すると当日から±n日とできる： デフォルト=当日)

　戻値

　　2000年１月１日からの秒数を返す

　値がセットされる特殊変数

　　G_TIME_YY ：年

　　G_TIME_MM ：月

　　G_TIME_DD ：日

　　G_TIME_HH ：時

　　G_TIME_NN ：分

　　G_TIME_SS ：秒

　　G_TIME_ZZ ：ミリ秒

　　G_TIME_WW ：曜日  (0：日曜....6：土曜)

　　G_TIME_YY2 ：年をxxの文字型

　　G_TIME_MM2 ：月をxxの文字型

　　G_TIME_DD2 ：日をxxの文字型

　　G_TIME_HH2 ：時をxxの文字型

　　G_TIME_NN2 ：分をxxの文字型

　　G_TIME_SS2 ：秒をxxの文字型

　　G_TIME_YY4 ：年をxxxxの文字型

　例）

-------------------------------------------------

　//　シャットダウン/電源断/サスペンド/モニタOff

　POFF(　コマンド )

　引数

　　コマンド：

　　　　P_FORCE　　　　:強制実行

　　　　P_POWEROFF　　:電源断

　　　　P_SHUTDOWN　:シャットダウン

　　　　P_LOGOFF　　　:ログオフ

　　　　P_REBOOT　　　:リブート

　　　　P_SUSPEND　　:サスペンド

　　　　P_SUSPEND2　:サスペンド2

　　　　P_MONIPOWER　:モニターOFF

　　　　P_SCREENSAVE　:スクリーンセーバ起動

　　　　※　P_FORCEは他のコマンドに付加して使用　(強制電源断　P_POWEROFF　or  P_FORCE 等)

　例）

-------------------------------------------------

　//　ＯＳ種別

　戻値　=　KINDOFOS()

　戻値

　　種別を示す番号

　　1 ：Win95、　2 ：Win98、　3 ：WinMe、　10 ：NT3.5、　11 ：NT4、　12 ：Win2000、　13 ：WinXP

-------------------------------------------------

　//　キークリック、トグルキー情報

　戻値　=　GETKEYSTATE(　キーコード )

　引数

　　キーコード：　状態を知りたいキーコード

　戻値

　　クリックがあった:True(1)、なし:False(0)

　※マウスクリック  　VK_RBUTTON（右）、 　VK_LBUTTON（左）、　VK_MBUTTON（中）

　※トグルキー状態　　TGL_IME（IME）、 　TGL_NUMLOCK（NumLock）

　　　　　　　　　　　　　　TGL_CAPSLOCK（CapsLock）、 　TGL_SCROLLLOCK（ScrollLock）

　例）

-------------------------------------------------

　//　ハードウェア（キーボード、マウス）からの入力禁止

　LOCKHARD(　禁止フラグ )

　引数

　　禁止フラグ：　　True：入力禁止、　False：解除

-------------------------------------------------

　//　UWSCが再生時に出すウィンドウの表示/非表示

　STOPFORM(　表示フラグ )　　　　//再生中に出る小さなウィンドウ（再生中....タイトル）

　LOGPRINT(　表示フラグ )　　　　　//PRINT文により出る表示用ウィンドウ

　引数

　　表示フラグ：　　True：表示、　False：非表示

=================================================

//　システム関数関連

-------------------------------------------------

　//　ボタン類のハンドルをゲットする

　戻値　=　GETCTLHND(　ID,　アイテム名,　[番号]　)

　引数

　　ID：　Windowを識別するID

　　アイテム名：　ボタン類のキャプション文字

　　番号：　同じキャプション名がある場合に番号指定

　戻値

　　ハンドル値

　※　GETCTLHND(ID,　GET_MENU_HND)　とするとメニュハンドルを返します

　　　GETCTLHND(ID,　GET_SYSMENU_HND)　とするとシステムメニュハンドルを返します

　例）

-------------------------------------------------

　//　ID <->ハンドル変換

　ハンドル=IDTOHND(　ID )　　　//IDをAPI等で利用する為にハンドル値に変換

　ID =IDTOHND(　ハンドル)　　　//ハンドル値をUWSC用にIDに変換

　例）

=================================================

//　ウィンドウ関数低レベル

-------------------------------------------------

　//　マウス移動

　MMV(　x,　y,　[ms]　)

　引数

　　x,　y：　位置

　　ms：　実行までの待ち時間(ミリセカンド)

-------------------------------------------------

　//　マウスボタン

　BTN(　ボタン,　状態,　x,　y,　[ms]　)

　引数

　　ボタン：　　LEFT(0),　RIGHT(1),　MIDDLE(2)

　　状態：　　CLICK（0),　DOWN(1),　UP(2)

　　x,　y：　位置

　　ms：　実行までの待ち時間(ミリセカンド)

-------------------------------------------------

　//　キーボード

　KBD(　仮想KEY,　[状態,　ms]　)

　引数

　　仮想KEY：　　仮想KEYコード

　　状態：　　CLICK（0：デフォルト),　DOWN(1),　UP(2)

　　ms：　実行までの待ち時間(ミリセカンド)

-------------------------------------------------

　//　ウィンドウ状態変更

　ACW(　ID,　x,　y,　[幅,　高さ,　ms]　)

　引数

　　ID：　Windowを識別するID

　　x,　y：　Window位置

　　幅,　高さ：　Window幅,　　高さ

=================================================

//　文字操作関連

-------------------------------------------------

　//　文字列コピー

　戻値　=　COPY(　文字列,　開始位置,　コピー文字数)

　引数

　　文字列：　コピー元の文字列

　　開始位置：　コピーすべき文字列の開始位置(１から)

　　コピー文字数：　コピーすべき文字数

　戻値

　　結果の文字列

　例）

-------------------------------------------------

　//　文字列に指定文字列があるか探す

　戻値　=　POS(　探す文字,　探される文字列,　[サーチフラグ]　)

　引数

　　探す文字：　探したい文字列

　　探される文字列：　探される文字列

　　サーチフラグ：　-1 を指定すると最後に見つかる文字位置を返す(nでn個目の位置)

　戻値

　　見つかった位置(１から）

　　(見つからなければゼロを返す)

　　(大文字,小文字の区別はしません)

　例）

-------------------------------------------------

　//　文字数を返す

　戻値　=　LENGTH(　文字列)

　引数

　　文字列：　数える文字列

　戻値

　　文字数

-------------------------------------------------

　//　数値であるかをチェック

　戻値　=　CHKNUM(　文字列)

　引数

　　文字列：　チェックする文字列

　戻値

　　数値であればTrue、　でなければFalse

-------------------------------------------------

　//　文字型を数値に変える

　戻値　=　VAL(　文字列)

　引数

　　文字列：　数値に変える文字列

　戻値

　　数値

　　数値変換できない場合は　ERR_VALUE (-999999)　を返す

　例）

-------------------------------------------------

　//　指定文字を置換する

　戻値　=　CHGMOJ(　文字列,　置換したい文字,　置換文字)

　引数

　　文字列：　置換したい文字列を含んだ文字列

　　置換したい文字：　置換したい文字列

　　置換文字：　置換文字列

　戻値

　　置換された文字列

　　(大文字,小文字の区別はしません)

　例）

-------------------------------------------------

　//　文字の両端の空白と制御文字を取り除く

　戻値　=　TRIM(　文字列)

　引数

　　文字列：　文字列

　戻値

　　両端の空白と制御文字が取り除かれた文字列

-------------------------------------------------

　//　数値フォーマット

　戻値　=　FORMAT(　数値,　幅,　[小数点桁]　)

　引数

　　数値：　数値

　　幅：　出力される文字数　(数値より指定幅が大きい時は右側をスペースにて補完)

　　小数点桁：　表示する小数点桁数

　戻値

　　フォーマットされた文字列

-------------------------------------------------

　//　配列を指定された値で埋める

　SETCLEAR(　変数名,　値 )

　引数

　　変数名：　配列変数名

　　値：　埋める値

-------------------------------------------------

　//　文字コードから文字を返す

　戻値　=　CHR(　文字コード )

　引数

　　文字コード：　ASCIIコード

　戻値

　　文字

-------------------------------------------------

　//　文字から文字コードを返す

　戻値　=　ASC(　文字)

　引数

　　文字：　先頭の１文字を処理

　戻値

　　ASCIIコード

=================================================

//　ファイル関連

-------------------------------------------------

　//　ファイルオープン

　戻値　=　FOPEN(　ファイル名,　[オープンモード]　)

　引数

　　ファイル名：　ファイル名

　　オープンモード： 以下の方法で指定

　　　　F_READ：　読み専用モード　（デフォルト時）

　　　　F_WRITE：　書き専用モード (既にファイルがあれば前の情報は消去)

　　　　F_READ or F_WRITE： 読み書き両用

　　　　F_EXISTS： ファイル存在チェック (ファイルオープンせずにファイルが存在するかを返す[ディレクトリチェックは最後に\を付加])

　戻値

　　ファイルＩＤ

　　オープンできなかった場合は-1 を返す

　　F_EXISTS　指定時はTrue(在り)／False(無し） を返す

　例）

-------------------------------------------------

　//　ファイルGET

　戻値　=　FGET(　ファイルＩＤ,　行,　[列]　)

　引数

　　ファイルＩＤ：　オープン時に返されたID

　　行： 取出したい行 (１から指定)

　　　　　行に-1 を指定するとそのファイルの行数を返します

　　列： 取出したい列(１から指定：,カンマ区切りのCSVファイルに対応)

　戻値

　　取出された値

　例）

-------------------------------------------------

　//　ファイルPUT

　FPUT(　ファイルＩＤ,　書込み値,　[行,　列]　)

　引数

　　ファイルＩＤ：　オープン時に返されたID

　　書込み値：書込み内容

　　行： 書込みたい行 (１から指定)

　　　　　0(デフォルト)で行末に追加

　　列： 書込みたい列(１から指定：,カンマ区切りのCSVファイルに対応)

　※注：実際にファイルが更新されるのはFCLOSEが呼ばれた時です

　　　　行=0であれば追加モードとして作用

　　　　存在する行,列が指定された時は挿入ではなく置換という形で作用

　例）

-------------------------------------------------

　//　ファイルクローズ

　FCLOSE(　ファイルＩＤ )

　引数

　　ファイルＩＤ：　オープン時に返されたID

　例）

-------------------------------------------------

　//　ファイル名の取得

　戻値　=　GETDIR(　ディレクトリ,　[ファイル指定,　不可視ファイルフラグ]　)

　引数

　　ディレクトリ：　ファイル名の取得のディレクトリ

　　ファイル指定：　ワイルドカード(*,　?)　によるファイル名指定

　　　　　　　　　　　　"\"　を指定するとディレクトリ名の取得

　　不可視ファイルフラグ：　　True：不可視ファイルも含める、　False：含めない(デフォルト)

　戻値

　　ゲットした数を返す

　　取得した情報は配列変数の　GETDIR_FILES[]　に格納される(配列はゼロから)

　例）

=================================================

//　ＣＯＭオブジェクト

　//　COMオブジェクト生成

　戻値　=　CREATEOLEOBJ(　COMオブジェクト名)

　引数

　　COMオブジェクト名：　COMオブジェクト名

　戻値

　　COMオブジェクト

　例）

-------------------------------------------------

　//　既に起動中のCOMオブジェクトに対してのアクセス

　戻値　=　GETACTIVEOLEOBJ(　COMオブジェクト名,　[タイトル]　)

　引数

　　COMオブジェクト名：　COMオブジェクト名

　　タイトル：　Windowのタイトル（他のWindowと区別できれば一部分だけでOK)

　戻値

　　COMオブジェクト

-------------------------------------------------

　//　コレクションの取得

　戻値　=　GETOLEITEM(　コレクションプロパティ名)

　引数

　　コレクションプロパティ名：　COMオブジェクト.コレクション取得プロパティ名

　戻値

　　ゲットしたコレクションの数

　　習得した物は配列変数の　ALL_OLE_ITEM[]　に格納される(配列はゼロから)

　例）

-------------------------------------------------

　//　COMエラーメッセージの抑止

　COM_ERR_IGN

　　　//何等かのCOM処理

　COM_ERR_RET

　※COM_ERR_IGN(エラー無視)～COM_ERR_RET(エラー認識)間でのCOMエラーメッセージを出ないようにする

　　　この間のエラーはERR_VALUE (-999999)を返すかにより認識可

　例）

=================================================

//　数学関数

　RANDOM(Range)　　　0 <=X <Range の範囲にある乱数を返す

　ABS(引数)　　　絶対値

　ZCUT(引数)　　マイナス値はゼロにする

　INT(引数)　　　　少数以下切落とし

　ROUND(引数)　少数以下丸める

　SQRT(引数)　　平方根

　POWER(Base,Exponent)　　累乗(BaseのExponent乗)

　EXP(引数)　　　指数関数

　LN(引数)　　　　自然対数

　LOGN(Base,X)　　Baseを底とするXの対数

　SIN(引数)　　　ラジアン単位

　COS(引数)　　ラジアン単位

　TAN(引数)　　ラジアン単位

　※UWSCではゼロ割算をエラーとはせずにゼロにします

=================================================

//　特殊変数

　G_MOUSE_X ：マウス位置Xを返す特殊変数

　G_MOUSE_Y ：マウス位置Yを返す特殊変数

　GET_WIN_DIR ：Windowsディレクトリ

　GET_SYS_DIR ：Systemディレクトリ

　GET_CUR_DIR ：現在のカレントディレクトリ

　GET_UWSC_DIR ：UWSCのディレクトリ

　GET_UWSC_VER ：UWSCのバージョン

　G_SCREEN_W ：画面幅

　G_SCREEN_H ：画面高

　G_SCREEN_C ：色数(１ピクセルのビット数)

=================================================


予約語一覧&仮想キー

　予約語&関数一覧

　変数としての使用は禁止です

//　構文

DIM　PUBLIC　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　MOD　PROCEDURE　FUNCTION　FEND　RESULT　VAR　DEF_DLL　OPTION EXPLICIT

//　ウィンドウ関連

GETID　CTRLWIN　CLKITEM　SCKEY　INPUT　SENDSTR　GETSTR　SETSLIDER　GETALLWIN

STATUS　MSGBOX　FUKIDASI　CHKBTN　MOUSEORG　PEEKCOLOR　CHKIMG　SAVEIMG　GETITEM　MUSCUR

//　制御関数

EXEC　SLEEP　DOSCMD　GETTIME　SOUND　POFF　KINDOFOS　GETKEYSTATE　LOCKHARD　STOPFORM　LOGPRINT

//　システム関数

GETCTLHND　IDTOHND　HNDTOID

//　ウィンドウ関数低レベル

MMV　BTN　KBD　ACW

//　文字操作

COPY　LENGTH　POS　CHKNUM　SETCLEAR　VAL　FORMAT　CHGMOJ　TRIM　CHR　ASC

//　ファイル

FOPEN　FCLOSE　FGET　FPUT　GETDIR

//　ＣＯＭオブジェクト

CREATEOLEOBJ　GETACTIVEOLEOBJ　GETOLEITEM　EMPTYPARAM　COM_ERR_IGN　COM_ERR_RET

//　数学関数

RANDOM　INT　ABS　ZCUT　ROUND　SQRT　POWER　SIN　COS　TAN　EXP　LN　LOGN

//特殊変数

PARAM_STR[]　ALL_WIN_ID[]　ALL_ITEM_LIST[]　GETDIR_FILES[]　ALL_OLE_ITEM[]　GET_WIN_DIR　GET_SYS_DIR　GET_CUR_DIR　GET_UWSC_DIR　GET_UWSC_VER

G_IMG_X　G_IMG_Y　G_SCREEN_*　G_TIME_*

//　定数

TRUE　FALSE　ACTIVATE　CLOSE　HIDE　SHOW　MIN　MAX　NORMAL

CLICK　DOWN　UP　LEFT　RIGHT　MIDDLE

F_READ　F_WRITE　F_EXISTS　EX_ICON　EX_HIDE　GET_SLIDER　ERR_VALUE

BTN_*　CLK_*　ITM_*　ST_*　SLCT_*　CUR_*

　定義済み仮想キー

VK_START

VK_WIN

VK_ALT

VK_CTRL

VK_ESC

VK_BACK              //　BackSpace

VK_TAB

VK_CLEAR

VK_RETURN           //　Enter

VK_SHIFT

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


例ループ

　//　マウス水平移動、 別スクリプトファイルの呼出し

　For　x　=　0　to　600

　　　MMV(x,　200)　　　　　　//マウスムーブ

　　　待ち　=　0

　　　While　待ち　<　10　　　　//ウエイト

　　　　　　待ち　=　待ち　+　1

　　　Wend

　　　待ち　=　0

　　　Repeat

　　　　　　待ち　=　待ち　+　1

　　　Until　待ち　>=　10　　　　//ウエイト

　　　//　100ドット移動毎にTEST.uws スクリプトファイルの実行

　　　If (x　mod　100)　=　0　then　Call　TEST

　Next

　//　DOSコマンドによるファイルのコピー

　Sound("c:\winnt\media\canyon.mid")　　　　　　　　//バックミュージック

　MsgBox("バックアップをとります")

　DosCmd("Copy　c:\*.uws　c:\temp\*.bak")　　　　//バックアップ

　Sound()　　　　　　　　　　　　　　　　　　　　　　　　　//STOP

　Sound("beep")　　　　　　　　　　　　　　　　　　　　//BEEP

　//　強制電源断

　POFF（P_POWEROFF　or  P_FORCE)


例メッセージ

　//　メモ帳起動

　If　MsgBox("メモ帳を起動しますか？",　BTN_YES　or　BTN_NO)　=　BTN_YES　then　Exec("notepad")

　//　メッセージ

　メモID　=　GETID("メモ帳")

　Ifb　メモID　<　0　then

　　　Fukidasi("メモ帳は起動されていません",　100,　100,　1,　16,　"ＭＳ 明朝")

　　　Sleep(5)

　　　Fukidasi()　　　　　　　　　//吹き出し消す

　Else

　　　SendStr(メモID,　"メモ帳は起動されています")

　　　Sleep(5)

　　　CtrlWin(メモID,　CLOSE)　　　　　　　　//メモ終了

　　　ClkItem(GETID("メモ帳"),　"いいえ")　　　//保存はしない

　endif


例HEDEMARU

　//秀丸の操作

　秀丸id =GETID("秀丸")

　ifb 秀丸id <0 then

　　MsgBox("秀丸が起動してません")

　　Exit

　endif

　//フォント変更、ルーラー表示

　ClkItem(秀丸id,　"ﾌｧｲﾙﾀｲﾌﾟ別の設定",　CLK_MENU)　　//CLK_*の指定はなくともよい

　ﾌｧｲﾙ別id =GETID("ﾌｧｲﾙﾀｲﾌﾟ別の設定")

　ClkItem(ﾌｧｲﾙ別id,　"表示",　CLK_TAB)　　　　　　　　　　　　//　表示のページを選択

　ClkItem(ﾌｧｲﾙ別id,　"ＭＳ ゴシック",　CLK_LIST)　　　　　　　//リストボックスより選択

　ClkItem(ﾌｧｲﾙ別id,　"全般",　CLK_TAB)　　　　　　　　　　　　//　全般のページを選択

　ifb ChkBtn(ﾌｧｲﾙ別id,　"ルーラー表示")=0 then       //チェックボックスがOffならば

　　　ClkItem(ﾌｧｲﾙ別id,　"ルーラー表示",　CLK_BTN,　True)　　//ルーラー表示On

　endif

　ClkItem(ﾌｧｲﾙ別id,　"10単位")

　ClkItem(ﾌｧｲﾙ別id,　"OK")

　//置換の実行

　ClkItem(秀丸id,　"置換",　CLK_MENU)

　置換id =GETID("置換")

　SendStr(置換id,　"あああ",　1)　　　　　//検索

　SendStr(置換id,　"いいい",　2)　　　　　//置換

　ClkItem(置換id,　"全置換")

　ClkItem(GETID("検索"),　"OK")

　//ファイル開く

　ClkItem(秀丸id,　"開く",　CLK_MENU)

　開くid =GETID("開く")

　SendStr(開くid,　"c:\readme.txt",　1)

　ClkItem(開くid,　"開く")

　SendStr(秀丸id,　"リターンの実行<#CR>")　　//　リターン　=<#CR>

　SendStr(秀丸id,　"タブの実行<#TAB>")　　　//　タブ　=<#TAB>


例ショートカットキ

　//コントロールパネルを開き　バージョン確認

　SCKEY(0,　VK_START,　S,　C)　　　//　Windowsに対してIDはゼロでよい

　For　i　=　0　to　100　　　　　　　　　//　開くまで待つ

　　　id　=　GETID("ｺﾝﾄﾛｰﾙ")

　　　if　id　>　0　then　break

　　　Sleep(0.1)

　Next

　SCKEY(id,　VK_ALT,　H,　A)　　　　//　ヘルプ　->　バージョン情報

　//　クリップボード貼付け

　メモID　=　EXEC("notepad",　0,　100,　10,　400,　400)

　SCKEY(メモID,　VK_CTRL,　V)

　//　文字置換

　wks　=　GETSTR(メモID)

　wks　=　CHGMOJ(wks,　"abc",　"xyz")　　　　//　abc ->xyzに置換

　Print wks


例IE

　//　インターネットエクスプローラの状態監視

　//　(アクセスページ,時間,受信バイトの表示)

　IEid　=　GETID("Internet Explorer")

　ifb　IEid　<　0　then

　　　MsgBox("Internet Explorerが起動してません")

　　　Exit

　endif

　inurl　=　Input("URLを入力して下さい")

　if　inurl　<>　""　then　SendStr(IEid,　inurl,　1 )

　oldmoji　=　""

　while　True

　　　wks　=　GETSTR(IEid,　0,　1 )　　　　//　タイトルをGET

　　　ifb　oldmoji　<>　wks　　　　　　　　　　//　変化したら記録を取る

　　　　　oldmoji　=　wks

　　　　　print　Copy(wks,　1,　Pos("-Microsoft",　wks)-1 )

　　　endif

　　　STZKUid　=　GETID("に接続")

　　　ifb　STZKUid　>　0　then　　　　　　//受信ダイアログからGET

　　　　　wks　=　"時間："　+　GETSTR(STZKUid,　4,　1 )　+　"<#CR>"

　　　　　wks　=　wks　+　"受信バイト："　+　GETSTR(STZKUid,　6,　1 )

　　　　　Fukidasi(wks,　0,　0 )

　　　endif

　　　sleep(1)

　　　if　GETID("Internet Explorer")　<　0　then　break

　wend


例再帰

　//　入力された数を階乗計算する

　While　True

　　数　=　input("1～10の間の数を入力して下さい")

　　ifb　VAL(数)　=　ERR_VALUE

　　　　MsgBox("数値を入れてください")

　　　　Continue

　　endif

　　ifb (数<1)　or　(数>10)

　　　　MsgBox("指定範囲内の数を入れてください")

　　　　Continue

　　endif

　　break

　wend

　print 数+"の階乗の答えは"+階乗計算(数)+"です"

　siki =数+"*10"

　print siki +"の答えは"+VAL(siki)+"です"

　//Mainプログラムはここまで

　//関数定義

　function　階乗計算(値)

　　ifb　値　=　0　then

　　　　Result　=　1

　　　　Exit

　　endif

　　Result =値 *階乗計算(値-1)//このように再帰計算もできるんだよ

　fend


例解像度

　//　画面解像度を変更する

　id　=　Exec("Control　Desk.cpl")　//　画面プロバティ起動

　ClkItem(id,　"設定",　CLK_TAB)

　kz　=　SETSLIDER(id,　GET_SLIDER)　　　//0：640,　1：800､　2：1024

　if kz >0 then SETSLIDER(id,　kz-1)　　//解像度を一段下げる

　ClkItem(id,　"True Color (32 ビット)",　CLK_LIST)

　ClkItem(id,　"ＯＫ",　CLK_BTN)

　ClkItem(GETID("画面"),　"ＯＫ",　CLK_BTN)

　ClkItem(GETID("モニタの設定"),　"はい",　CLK_BTN)


例全Win

　//　全部のウィンドウ情報を表示する　又アイコン状態のものは元に戻す

　数　=　GETALLWIN()　　//　全ＩＤゲット

　Print　数

　For　i　=　0　to　数-1

　　　print　STATUS(ALL_WIN_ID[i],　ST_TITLE)　　　//タイトル表示

　　　//　状態表示

　　　print　"X="　+　STATUS(ALL_WIN_ID[i],　ST_X)　+　",Y="　+　STATUS(ALL_WIN_ID[i],　ST_Y)

　　　print　"幅="　+　STATUS(ALL_WIN_ID[i],　ST_WIDTH)　+　",高="　+　STATUS(ALL_WIN_ID[i],　ST_HEIGHT)

　　　print　"IsICON="　+　STATUS(ALL_WIN_ID[i],　ST_ICON)

　　　print　",IsVISIBLE="　+　STATUS(ALL_WIN_ID[i],　ST_VISIBLE)

　　　print　",IsACTIVE="　+　STATUS(ALL_WIN_ID[i],　ST_ACTIVE)

　　　//　アイコン状態のものは元に戻す

　　　If　STATUS(ALL_WIN_ID[i],　ST_ICON)　then　CtrlWin(ALL_WIN_ID[i],　NORMAL)

　Next

　//　リストボックスに在る物を全て表示する

　id　=　GetID("Form1")

　for　i　=　0　to　GetItem(id,　ITM_LIST,　1)-1

　　　print　ALL_ITEM_LIST[i]

　next


例ファイル

//　CSVファイルの値を２倍して書き戻す

　fid　=　FOPEN("TEST.CSV",　F_READ　or　F_WRITE)　//　ファイルオープン

　For　行　=　1　to　FGET(fid,　-1)　　　　　　　　　　　　　　//　行数分

　　　　For　列　=　1　to　3　　　　　　　　　　　　　　　　　　　　　//　３列

　　　　　　　atai　=　FGET(fid,　行,　列)　　　　　　　　　　　　　　　//　GET

　　　　　　　if　ChkNum(atai)　then　atai　=　atai　*　2　　　　　//　数字であれば２倍

　　　　　　　FPUT(fid,　atai,　行,　列)　　　　　　　　　　　　　　　　//PUT

　　　　next

　next

　FCLOSE(fid)　　　　　　　　　　　　　　　　　　　　　　　　　　　　//　ファイルクローズ

//　昨日の日報(yymmdd.dat),月報(yymm.dat)をめるぞう君で送信する

　GetTime(-1)　　　　　　　　　　//　昨日の日付を取得

　日報ファイル　=　G_TIME_YY2 +G_TIME_MM2 +G_TIME_DD2 +".DAT"

　月報ファイル　=　G_TIME_YY2 +G_TIME_MM2 +".DAT"　　　//　送付ファイル名

　fid　=　FOPEN("送信.txt",　F_WRITE)　　　　　　　　　　//　ファイルオープン

　FPUT(fid,　"<#>FILE="　+　日報ファイル)　　　　　　　//　ファイル送付

　FPUT(fid,　"<#>FILE="　+　月報ファイル)

　FPUT(fid,　"昨日のファイルです")　　　　　　　　//Bodyメッセージ

　GetTime()　　　　　　　　　　　　　　　　　　　　　　　//今日の日付を取得

　FPUT(fid,　"<#>Subject="+G_TIME_MM2+"/"+G_TIME_DD2)　　//　Subject=今日の日付

　FCLOSE(fid)　　　　　　　　　　　　　　　　　　　　　//　ファイルクローズ

　//　引数にファイル名を付けてめるぞう君を起動

　EXEC("MLZOU.exe　送信.txt")


例セレクト

　//　ボタン選択

　SELECT　SLCTBOX(SLCT_BTN,　10,　"どれか選んでね",　"AAAA",　"BBBB",　"CCCC")

　　CASE　SLCT_1

　　　FUKIDASI("１番目が選ばれました")

　　CASE　SLCT_2

　　　FUKIDASI("２番目が選ばれました")

　　CASE　SLCT_3

　　　FUKIDASI("３番目が選ばれました")

　　CASE　0

　　　FUKIDASI("タイムアウトしました")

　SELEND

　Sleep(3)

　FUKIDASI()

　//　チェックボックス（複数選択の可能性あり)

　ans　=　SLCTBOX(SLCT_CHK,　0,　"必要なものをチェックしてね",　_   //行結合

　　　　　　　"AAAA",　"BBBB",　"CCCC")

　wks　=　""

　if　(ans　and　SLCT_1)　<>　0　then　wks　=　wks　+　"１番目"

　if　(ans　and　SLCT_2)　<>　0　then　wks　=　wks　+　"２番目"

　if　(ans　and　SLCT_3)　<>　0　then　wks　=　wks　+　"３番目"

　FUKIDASI(wks　+　"が選ばれました")

　Sleep(3)

　FUKIDASI()

　//　CASE　の定義は文字でも数値でも変数でもＯＫさ

　wkmoji　=　"BBB"

　SELECT　INPUT("なんか入れて")

　　CASE　"AAA"　　　　　　　//　文字

　　　FUKIDASI("AAA")

　　CASE　wkmoji　　　　　　　//　変数

　　　FUKIDASI(wkmoji)

　　CASE　3　　　　　　　　　　//　数値

　　　FUKIDASI("３")

　　DEFAULT

　　　FUKIDASI("訳わかんないです")

　SELEND

　Sleep(3)


例COMオブジェ

　//　Excelの操作

　Excel　=　CreateOLEObj("Excel.Application")

　Excel.Visible　=　True

　Workbook　=　Excel.WorkBooks.Add

　for　y　=　1　to　5

　　　for　x　=　1　to　5

　　　　　Excel.ActiveSheet.Cells[y,x].Value　=　y*10　+　x

　　　next

　next

　PLeneSet　=　WorkBook.WorkSheets[1].Range["A5:E5"].Borders[4]

　PLeneSet.Weight　=　3

　PLeneSet.ColorIndex　=　3

　Excel.WorkBooks.Open(FileName :="e:\test.csv",　readOnly :=False)

　//　IE の表示、その中のリンクアドレスを全て抽出する

　IE　=　CreateOLEObj("InternetExplorer.Application")

　IE.Visible　=　True

　IE.Navigate("http://www07.u-page.so-net.ne.jp/ca2/umiumi/")　　//　指定URL

　While　IE.busy;　Sleep(0.1);　Wend　　　　　　　　　　　　　　　　　　　　　　//接続待ち

　While　IE.Document.readyState<>"complete");　Sleep(0.1);　Wend　　//表示待ち

　COM_ERR_IGN　　//COMエラー無視

　for　i　=　0　to　IE.document.links.length-1　//　リンクアドレスを表示

　　　wks　=　IE.document.links[i]

　　　ifb wks　=　ERR_VALUE

　　　　　　print　"エラーが起こったみたい"

　　　　　　break

　　　endif

　　　print　wks

　next

　COM_ERR_RET　　//エラー処理復帰

　//　c:\windows下のディレクトリ表示

　fs　=　CreateOLEObj("Scripting.FileSystemObject")

　gf　=　fs.GetFolder("c:\windows")

　for　i　=　0　to　GETOLEITEM(gf.SubFolders)-1　//　コレクション取得

　　　print　ALL_OLE_ITEM[i].name

　next


例PeekColor

　//　カーソル位置の色を表示

　x　=　G_MOUSE_X;　y　=　G_MOUSE_Y

　c　=　PeekColor(x,　y)

　PRINT　"赤="+G_赤(c)+",緑="+G_緑(c)+",青="+G_青(c)

　//　タスクトレイのアイコンを左クリック

　Ifb　CHKIMG("タスクトレイアイコン.BMP")

　　BTN(LEFT,　CLICK,　G_IMG_X+5,　G_IMG_Y+5)

　Endif

　//　ウィンドウ "あいう"の画像を保存

　SaveImg("あいう.BMP",　GETID("あいう"))

　//　以下　関数

　function　G_赤(c)

　　Result　=　c　and　$FF

　fend

　function G_緑(c)

　　Result　=　(c　and　$FF00)　/　$100

　fend

　function　G_青(c)

　　Result　=　(c　and　$FF0000)　/　$10000

　fend


例キー情報

//AキーとSHIFTキーとマウスクリックをチェック

while True

　　wks　=　""

　　if　GETKEYSTATE(VK_A)　then　wks　=　wks　+　",Ａ"

　　if　GETKEYSTATE(VK_SHIFT)　then　wks　=　wks　+　",SHIFT"

　　if　GETKEYSTATE(VK_RBUTTON)　then　wks　=　wks　+　",右クリック"

　　if　GETKEYSTATE(VK_LBUTTON)　then　wks　=　wks　+　",左クリック"

　　Fukidasi(Copy(wks,2,99))

　　if　wks　<>　""　then　sleep(0.3)

　　sleep(0.2)

wend


例GetDIR

　//　ファイル名表示

　for　i=0　to　GETDIR("d:\temp")-1

　　　print　GETDIR_FILES[i]

　next

　//　*.datファイル名のみ表示

　fo　i=0　to　GETDIR("d:\temp","*.dat")-1

　　　print GETDIR_FILES[i]

　next

　//　d:ドライブのディレクトリ木表示

　ディレクトリ("d:",　0)

　procedure ディレクトリ(dd,　lve)

　　　lve　=　lve　+　1

　　　for　i=0　to　GETDIR(dd,"\")-1

　　　sps　=　""

　　　for　s=2　to　lve;　　sps　=　sps　+　"";　　next

　　　　　print　sps　+　GETDIR_FILES[i]

　　　　　ディレクトリ(dd+"\"+GETDIR_FILES[i],　lve)

　　　next

　fend


例DLL

　//　DLLの使用

　DEF_DLL SetWindowTextA(HWND,string):user32.DLL

　DEF_DLL EnableWindow(HWND,Bool):Bool:user32.DLL

　DEF_DLL EnableMenuItem(HWND,UINT,UINT):DWORD:user32.DLL

　DEF_DLL GetSubMenu(HWND,int):HWND:user32.DLL

　DEF_DLL ModifyMenuA(HWND,Long,Long,Long,Long):Long:user32.DLL

　MF_BYPOSITION =$400

　MF_GRAYED =$1

　SC_CLOSE =$F060

　//　メモ帳を弄る　　終了はALT +F4 で

　id =exec("notepad")

　hwnd =GetSubMenu(GetCtlHnd(id,GET_MENU_HND),0)　　　//メニュ->ファイル

　EnableMenuItem(hwnd,8,MF_BYPOSITION+MF_GRAYED)　　//終了をグレー

　hwnd =GetCtlHnd(id,GET_SYSMENU_HND)　　　　　　　　　　　//システムメニュ

　ModifyMenuA(hwnd,SC_CLOSE,MF_GRAYED,0,0)　　　　　　//クローズボタンをグレー

　ClkItem(id,"バージョン情報")

　hwnd =GetCtlHnd(GETID("バージョン情報"),"OK")

　SetWindowTextA(hwnd,"押せまい")　　　　　　　　　　　　　//OKボタン書換え

　EnableWindow(hwnd,False)

　//Post/Message は以下のように

　DEF_DLL PostMessageA(HWND,LONG,LONG,DWORD):Bool:user32.DLL

　DEF_DLL SendMessageA(HWND,LONG,LONG,DWORD):LONG:user32.DLL

　//var宣言を付けると参照引数（ポインター渡し)

　//DEF_DLL teststr(var string,var int,var double):string:TEST.DLL