-----------------------------------------------------
<共通ルール>
-----------------------------------------------------
命令の記述方法
<MOVE> "p1"p2"
<MOVE> といった具合に命令の前後は<>で囲う
命令の英字は「半角大文字」限定
"p1" 〜 の所に命令ごとに必要なパラメータを記述する
各パラメータは " ダブルコーテーションで区切る
1行に1命令しか記述してはいけない
(1行に複数命令書くとロジック上どれか1個が実行されてしまう)
1行は200桁まで
命令の記述位置の指定はないが前に1個タブを
入れておいた方が見やすい
変数
*p1 変数は頭に * アスタリスクをつける
数字タイプや文字タイプなどの区別は特にしていない
計算の時には数字だったら計算するし、そうでなかったら
計算出来ないだけの事
変数の数の初期値は100個まで
(最小10個〜最大300個まで変更する事ができる)
桁数の初期値は256桁まで
(最小64桁〜最大32000桁まで変更する事ができる)
--------------------------------------------------------------------
<命令説明>
--------------------------------------------------------------------
◆ロジック操作
KSPスクリプトを宣言
<KSP>
コメント行や何も入っていない行をのぞく、スクリプトの
先頭行にこの文字が入っていないとKSPと認識されない
コメント行
;
セミコロンを1桁目に入れておくとその行はコメント行とみなす
項目転記
<MOVE> "p1"p2"
p1 : 転記先変数
p2 : 転記元変数/数字/文字
右から左に転記される
例1.<MOVE> "*a"1" *a という変数に数字 1 を転記
例2.<MOVE> "*b"A" *b という変数に文字 A を転記
例3.<MOVE> "*c"*d" *c という変数に *d の変数を転記
項目足算
<+> "p1"p2"
p1 : 加算先変数
p2 : 加算元変数/数字
例1.<+> "*a"1" *a という変数に 1 を加算
例2.<+> "*b"*c" *b という変数に *c の変数を加算
項目引算
<-> "p1"p2"
p1 : 減算先変数
p2 : 減算元変数/数字
例1.<-> "*a"1" *a という変数から 1 を減算
例2.<-> "*b"*c" *b という変数から *c の変数を減算
項目掛算
<*> "p1"p2"
p1 : 掛ける先変数
p2 : 掛ける元変数/数字
例1.<*> "*a"5" *a 掛ける 5 を *a に格納
例2.<*> "*b"*c" *b 掛ける *c を *b に格納
項目割算
</> "p1"p2"
p1 : 割り先変数
p2 : 割る変数/数字
小数点以下は切り捨て
例1.</> "*a"5" *a 割る 5 を *a に格納
例2.</> "*b"*c" *b 割る *c を *b に格納
条件分岐
<IF> "p1"p2"p3"
p1 : 比較変数/数字/文字
p2 : 比較条件
p3 : 比較変数/数字/文字
条件が真の時、そのまま次の行に行く
偽の時、次の1行をとばす
比較条件
= 同じ
! 違う
> 超え
< 未満
>= 以上
<= 以下
例1.<IF> "*a"="1" *a という変数が 1 だったら
次の命令に行く
以外 だったら1行とばす
例2.<IF> "*a"="*b" *a という変数が変数 *b と
同じだったら次の命令に行く
以外 だったら1行とばす
指定ラベルに制御を移す
<GOTO> "p1"
p1 : ラベル文字/数字/変数
ラベルは左端に書く、左右スペースがあると認識されない
ラベルその物にはダブルコーテーションは付けない
ラベルの数は特に制限なし
ウェイト
<WAIT> "p1"
p1 : 数字/変数 1:(1/10ms)
ループなどで時間がかかる処理の時に適当にウェイト(待ち時間)
を入れ画面ロックを回避する
もしウェイトを入れずに永久ループなどを作ってしまったら
マウスはもう効かないのでそういう時は、CTRL+ALT+DEL で
プログラムを強制終了させる
利用可能変数桁数等の初期値変更
<INI> "p1"p2"p3"
p1 : 利用可能変数桁数 数字/変数 (MIN 64 〜 MAX 32000 まで)
初期値 256桁
p2 : 利用可能変数の数 数字/変数 (MIN 10 〜 MAX 300 まで)
初期値 100個
p3 : 利用可能入力ボックスの数 数字/変数(MIN 10 〜 MAX 30 まで)
初期値 10個
変数や入力ボックスを使う前に1つこの命令を入れておくと
初期値が変更される
テキストファイルを読込んだりする場合、変数既定値 256桁
では足りない場合が多い、そういう時に変数で扱える桁数を
拡張する、また変数100個もいらないといった時に数をへらして
やればその分使用メモリーが少なくて済む
項目区切り
<PICUP> "p1"p2"p3"p4"
p1 : 区切項目格納先変数
p2 : 区切る元変数/文字/数字
p3 : 何桁目から(先頭は 0 からはじまる)
p4 : 何桁分
例1.<PICUP> "*a"*b"0"1"
*b という変数の先頭から1桁分を *a という
変数に格納する
項目合体
<&> "p1"p2"
p1 : 合体先変数
p2 : 合体元変数/文字/数字
例1.<&> "*a"*b"
*a という変数に *b という変数を合体する
項目の長さを取得
<LEN> "p1"p2"
p1 : 取得先変数
p2 : 項目の長さを取得したい変数/文字/数字
例1.<LEN> "*a"*b"
*a という変数に *b という変数の長さを格納する
年月日取得
<DATE> "p1"
p1 : 取得先変数
例1.<DATE> "*a"
*a という変数に システム年月日を格納する
時分秒取得
<TIME> "p1"
p1 : 取得先変数
例1.<TIME> "*a"
*a という変数に システム時分秒を格納する
乱数発生
<RND> "p1"p2"
p1 : 乱数取得先変数
p2 : 乱数の範囲 数字/変数
例1.<RND> "*a"99"
*a という変数に 0〜99 の乱数を格納する
コマンドライン取得
<CMD> "p1"
p1 : コマンドライン取得先変数
プログラムアイコン上にファイルをドラッグ&ドロップ起動
するとファイルのフルパスが取れる
例1.<CMD> "*a"
*a という変数にコマンドラインを格納する
ダブルコーテーション取得
<DABU> "p1"
p1 : ダブルコーテーション取得先変数
ダブルコーテーションが必要な時に使う
例1.<DABU> "*a"
*a という変数にダブルコーテーションを格納する
バイナリコード取得
<BIN> "p1"p2"
バイナリコードが必要な時に使う
p1 : バイナリコード取得先変数
p2 : バイナリコード取得元変数/数字/文字
※バイナリコードは取得元変数の先頭1バイトが取得されます。
複数桁のバイナリコードを扱う時は、<PICUP>命令で1バイトづつ
ピックアップして行います。
例1.<BIN> "*a"A"
*a という変数に文字 A のバイナリコードを格納する
例2.<BIN> "*b"*c"
*b という変数に変数 *c のバイナリコードを格納する
例3.<BIN> "*c"鈴木"
*c という変数に文字 鈴木 の先頭1バイトの
バイナリコードを格納する
EUCコード変換
<EUC> "p1"p2"p3"
EUCコードが必要な時に使う
p1 : EUCコード変換先変数
p2 : EUCコード変換元変数/文字
p3 : 第1バイト目/第2バイト目
1 : 第1バイト目変換
2 : 第2バイト目変換
※EUCコードは変換元変数の先頭第1バイト目と第2バイト目といった具合に
1バイトづつ分けて変換します。
※複数桁のEUCコードを扱う時は、<PICUP>命令で2バイトづつ
ピックアップして行います。
※EUCコードへの変換は、漢字(全角文字)が対象です。
全角半角の判断は、変換元変数(シフトJIS)第1バイト目0x80以上は
全角、以外は半角、といったロジックでOKです。
KSPサンプルスクリプトJ(EUCコードに変換).txt 参照
例1.<EUC> "*a"鈴"1"
*a という変数に文字 鈴 の第1バイト目のEUCコードを格納する
例2.<EUC> "*a"鈴"2"
*a という変数に文字 鈴 の第2バイト目のEUCコードを格納する
例3.<EUC> "*b"*c"1"
*b という変数に変数 *c の第1バイト目のEUCコードを格納する
-----------------------------------------------------------
◆ファイル操作
ファイルコピー
<COPY> "p1"p2"
p1 : コピー元フルパス/変数
p2 : コピー先フルパス/変数
例1.<COPY> "C:\Reidai\a.txt"C:\Windows\デスクトップ\a.txt"
C:\Reidai フォルダの a.txt を デスクトップ にコピー
※ファイルを扱う命令はすべてフルパスで記述する
ファイル削除
<DEL> "p1"
p1 : 削除元フルパス/変数
例1.<DEL> "C:\Reidai\a.txt"
C:\Reidai フォルダの a.txt を 削除
フォルダ内指定ファイルコピー
<XCOPY> "p1"p2"p3"
p1 : コピー元フォルダフルパス/変数
p2 : コピー先フォルダフルパス/変数
p3 : コピー対象ファイル拡張子/変数
フォルダ内のフォルダはコピーされずに無視される
またその中のファイルも無視される
対象は1階層分のファイルだけ
p3 拡張子の所に ? を入れると全ファイルが対象になる
※使用には十分な注意が必要
例1.<XCOPY> "C:\Reidai\a"C:\Windows\デスクトップ\a"?"
C:\Reidai\aフォルダ内のファイルをすべて
デスクトップ の aフォルダ内にコピー
例2.<XCOPY> "C:\Reidai\a"C:\Windows\デスクトップ\a".txt"
C:\Reidai\aフォルダ内の拡張子が .txt のファイルを
すべてデスクトップ の aフォルダ内にコピー
フォルダ内指定ファイル削除
<XDEL> "p1"p2"
p1 : 削除元フォルダフルパス/変数
p2 : 削除対象ファイル拡張子/変数
フォルダ内のフォルダは削除されずに無視される
またその中のファイルも無視される
対象は1階層分のファイルだけ
p2 拡張子の所に ? を入れると全ファイルが対象になる
※使用には十分な注意が必要
例1.<XDEL> "C:\Reidai\a"?"
C:\Reidai\aフォルダ内のファイルをすべて削除
例2.<XDEL> "C:\Reidai\a".txt"
C:\Reidai\aフォルダ内の拡張子が .txt のファイルを
すべて削除
カレントディレクトリ変更
<CD> "p1"
p1 : 変更フォルダパス/変数
例1.<CD> "C:\Reidai"
C:\Reidai フォルダにカレントディレクトリを変更
フォルダ作成
<MD> "p1"
p1 : 作成フォルダフルパス/変数
例1.<MD> "C:\Reidai\a"
C:\Reidai フォルダにフォルダ a を作成
カレントディレクトリ取得
<DIR> "p1"
p1 : 取得先変数
例1.<DIR> "*a"
*a という変数に 現在のカレントディレクトリを取得する
ウィンドウズドライブ取得
<WDIR> "p1"
p1 : 取得先変数
例1.<WDIR> "*a"
*a という変数に ウィンドウズディレクトリが存在する
ドライブ名を取得する
ファイル読込み
<LOAD> "p1"p2"p3"p4"
p1 : 読込みファイルフルパス/変数
p2 : 読込み先変数
p3 : 何桁目から 数字/変数(省略可)
p4 : 何桁分 数字/変数(省略可)
例1.<LOAD> "C:\Reidai\a.txt"*a"
C:\Reidai\a.txt というファイルの内容を
変数 *a に取込む
※256桁を超えるファイルを読み込む場合、変数桁数既定値を
<INI>命令で拡張する必要がある(MAX 32000桁)
例2.<LOAD> "C:\Reidai\a.txt"*a"0"32000"
C:\Reidai\a.txt というファイルの先頭から
32000桁分の内容を変数 *a に取込む
※先頭は0から始まる
※32000桁を超えるファイルを扱う場合、桁数を区切って
処理する
ファイル書出し
<SAVE> "p1"p2"p3"p4"
p1 : 書出しファイルフルパス/変数
p2 : 書出し元変数
p3 : 何桁目から 数字/変数(省略可)
p4 : 何桁分 数字/変数(省略可)
例1.<SAVE> "C:\Reidai\a.txt"*a"
変数 *a の内容を C:\Reidai フォルダに a.txt という
ファイル名で書出す
例2.<SAVE> "C:\Reidai\a.txt"*a"0"32000"
変数 *a の32000桁分を C:\Reidai\a.txt というファイルの
先頭に書き出す
※先頭は0から始まる
※32000桁を超えるファイルを扱う場合、桁数を区切って
処理する
1レコード取得
<READ> "p1"p2"p3"
p1 : 1レコード格納先変数
p2 : 元変数
p3 : 何行目か
行は 0 行目からはじまる
例1.<READ> "*a"*b"0"
*b という変数の 先頭行目1レコードを *a という
変数に格納する
ここで言う1レコードとは改行コードで改行された
1行分という意味
格納される変数には改行コードは含まれない
レコード数取得
<RCNT> "p1"p2"
p1 : レコード数格納先変数
p2 : レコード数を調べたい元変数/文字/数字
例1.<RCNT> "*a"*b"
*b という変数のレコード数を *a という
変数に格納する
ここで言うレコードとは改行コードで改行された
行という意味
改行コード付加
<\N> "p1"
p1 : 改行コードを付加する変数
例1.<\N> "*a"
*a という変数に改行コードを付加する
これにより複数行に改行したテキストファイルを作る
事ができる
エラー時スキップする
<SKIP>
コピーや削除しようとしたファイルが存在しないなど
の時その命令を読み飛ばして処理を続行する
エラー時スキップしない
<NOSKIP>
コピーや削除しようとしたファイルが存在しないなど
の時処理をストップさせる
なにも指定しなければこちらが既定値
ファイルサイズ取得
<FSZ> "p1"p2"
p1 : サイズ取得先変数
p2 : サイズ取得ファイルフルパス/変数
例1.<FSZ> "*a"C:\Reidai\a.txt"
C:\Reidai\a.txt というファイルのサイズ(バイト数)を
変数 *a に取得する
※ファイルが存在しない時は -1 が入る
ファイル一覧取得
<XDIR> "p1"
p1 : ファイル一覧取得先変数
カレントディレクトリのファイル一覧を取得する
一覧はファイルごとに改行コードで改行された状態で取得される
例1. <CD> "C:\Reidai"
<XDIR> "*a"
C:\Reidai というフォルダ内のファイル一覧を
変数 *a に取得する
ファイルパッチ修正
<PAT> "p1"p2"p3"p4"p5"
p1 : 基ファイルフルパス/変数
p2 : 基ファイル何桁目から 数字/変数
p3 : 基ファイル何桁分を 数字/変数
p4 : 修正するファイルフルパス/変数
p5 : 修正するファイル何桁目に書き込む 数字/変数
※桁の先頭は0から始まる
例1. <PAT> "C:\Reidai\アイコン.ico"22"744"C:\Reidai\KSPサンプルスクリプト1.exe"113328"
KSPアイコン変更
C:\Reidai\アイコン.ico というファイルの22桁目から744桁分を
C:\Reidai\KSPサンプルスクリプト1.exe というファイルの113328桁目
に書き込む
※この命令は、バイナリファイルもOKです。
ちなみにKSP内でバイナリデータを扱うには、
<BIN>バイナリコード取得命令などを使って、1バイトづつ操作します。
----------------------------------------------------------------------
◆他プログラム起動
プログラム起動
<EXEC> "p1"
p1 : プログラムフルパス/変数
例1.<EXEC> "C:\WINDOWS\NOTEPAD.EXE" メモ帳を起動
拡張子で関連付け起動
<XEXEC> "p1"
p1 : 起動ファイルフルパス/変数
例1.<XEXEC> "C:\Reidai\a.txt"
C:\Reidai フォルダの a.txt を 起動
例2.<XEXEC> "http://www.bl.mmtr.or.jp/~suzuki/"
インターネットホームページ
http://www.bl.mmtr.or.jp/~suzuki/ を 起動
DOSコマンド起動
<DOS> "p1"p2"p3"
p1 : DOSコマンド/変数
p2 : コマンド終了時DOSプロンプトを自動で閉じる/閉じない
1 : 自動で閉じる
2 : 閉じない
p3 : コマンドインタプリタを指定する(省略時 command.com を使う)
例1.<DOS> "DIR C:\Reidai\フォルダ"2"command.com"
C:\Reidai\フォルダ のディレクトリ一覧を表示
例2.<DOS> "RMDIR C:\Reidai\フォルダ"1"command.com"
C:\Reidai\フォルダ を 削除
例3.<DOS> "FORMAT A:/F:1.44"1"command.com"
フロッピーAドライブを通常のフォーマット
※PC98シリーズなどフロッピーがAドライブ以外の場合は、
A:の所を正しいフロッピードライブにしてください。
(注.まちがってもハードディスクをフォーマットしてしまわない様に)
例4.<DOS> "FORMAT A:/F:1.44/Q"1"command.com"
フロッピーAドライブをクイックフォーマット
※その他、DOSのコマンドは何でも実行できると思うので、
必要に応じて色々試してみてください。
※2000,XP 系などでのコマンドインタプリタのファイル名が
command.com ではない様な気がするので、一応指定できる様に
しました。(ひょっとするとDOS自体無いのかもしれませんが、
環境がないのでわかりません円)
----------------------------------------------------------------------
◆ウィンドウ操作
ウィンドウ表示
<WIN> "p1"p2"p3"p4"
p1 : ウィンドウXサイズ数字/変数
p2 : ウィンドウYサイズ数字/変数
p3 : ウィンドウ表示X位置数字/変数
p4 : ウィンドウ表示Y位置数字/変数
例1.<WIN> "640"480"0"0"
大きさ640x480で左上にウィンドウを表示
ウィンドウタイトル
<TIT> "p1"
p1 : タイトル文字/変数
ウィンドウクリア
<CLS> "p1"
p1 : 初期化モード数字/変数
ウィンドウのバックの色
0 : 白
1 : 中間
2 : 灰色
3 : 中間
4 : 黒
ボタン作成
<BUT> "p1"p2"p3"p4"
p1 : ボタンを押した時に制御を移すラベル文字/変数
(飛び先)
p2 : ボタンサイズX(横) 数字/変数(省略時標準サイズ)
p3 : ボタンサイズY(縦) 数字/変数(省略時標準サイズ)
p4 : ボタン文字/変数
(省略時作成した順番でbutton1 button2 〜 buttonA という名前で作られる)
ボタンの数は10個まで
例1.<BUT> "a"70"40"ボタン1"
カレント位置に X70 Y40 のサイズでボタン1という名前で
ボタンを作成、ボタンが押されたらラベル a(飛び先)に制御を移す
ウィンドウストップ
<STOP>
ボタンが押されるのを待ったり、ディスプレイ表示を止めて見たり
する時に書く
ディスプレイ表示
<DISP> "p1"p2"p3"
p1 : 表示する文字/数字/変数
p2 : 表示X位置数字/変数
p3 : 表示Y位置数字/変数
p2 p3 を省略するとオブジェクトカレント位置より
自動的に下に移動表示される
例1.<DISP> "a"10"20"
XY座標10,20の位置に文字 a を表示
オブジェクトカレント位置
<POS> "p1"p2"
p1 : オブジェクトカレントX位置数字/変数
p2 : オブジェクトカレントY位置数字/変数
例1.<POS> "10"20"
XY座標10,20の位置にオブジェクトカレント位置を変更
オブジェクト色
<IRO> "p1"p2"p3"
p1 : R(0〜255)数字/変数
p2 : G(0〜255)数字/変数
p3 : B(0〜255)数字/変数
例1.<IRO> "255"255"255"
RGBでオブジェクトの色を指定
フォント
<FONT> "p1"p2"p3"
p1 : 0:MS明朝 1:MSゴシック 数字/変数
p2 : 文字サイズ数字/変数
p3 : 0:通常 1:太字 2:イタリック 3:太字イタリック
文字種数字/変数
例1.<FONT> "1"14"1"
MSゴシック,サイズ14,太字
初期値は <FONT> "1"16"0"
直線
<SEN> "p1"p2"p3"p4"
p1 : 直線開始位置X数字/変数
p2 : 直線開始位置Y数字/変数
p3 : 直線終了位置X数字/変数
p4 : 直線終了位置Y数字/変数
例1.<SEN> "10"200"600"200"
XY座標開始位置10,200から終了位置600,200 の間に
指定した色で直線を引く
四角塗りつぶし
<NURI> "p1"p2"p3"p4"
p1 : 塗りつぶし開始位置X数字/変数
p2 : 塗りつぶし開始位置Y数字/変数
p3 : 塗りつぶし終了位置X数字/変数
p4 : 塗りつぶし終了位置Y数字/変数
例1.<NURI> "10"20"100"50"
XY座標開始位置10,20から終了位置100,50 の範囲を
指定した色で塗りつぶす
入力ボックス
<INPUT> "p1"p2"p3"
p1 : 入力先/変数
p2 : 入力枠Xサイズ数字/変数
p3 : 入力枠Yサイズ数字/変数
入力ボックスの数は初期値10個まで(30個まで拡張できる)
例1.<INPUT> "*a"300"30"
カレント位置にXY座標300,30の入力ボックスを作る
入力されたデータは変数 *a に格納される
入力ボックス初期化
<INCLS> "p1"p2"
p1 : 入力ボックスID(0〜)数字/変数
p2 : 入力ボックス初期値/変数
入力ボックスIDは入力ボックスを作った順番に
0 から連番が振られている
例1.<INCLS> "0""
1個目の入力ボックスをクリアしカーソルを位置付ける
画像ファイル表示
<GDISP> "p1"p2"p3"
p1 : 画像ファイルフルパス/変数
p2 : 表示X座標数字/変数
p3 : 表示Y座標数字/変数
画像ファイルは bmp mag jpg が表示可能
例1.<GDISP> "C:\Reidai\a.bmp"50"150"
XY座標50,150の位置に C:\Reidai\a.bmp という画像を
表示する
-------------------------------------------------------------
◆音操作
音を再生する
<OTO> "p1"
p1 : サウンドファイルフルパス/変数
例1.<OTO> "C:\WINDOWS\MEDIA\DING.WAV"
DING.WAV というサウンドファイルを再生
サウンドファイルは WAV AVI MID が再生可能
音を停止する
<OTOSTOP>
例1.<OTOSTOP>
再生中の音を停止する
CDを再生する
<CDPLAY>"p1"
p1 : CDのトラック/変数
例1.<CDPLAY>"1"
CDの1曲目以降を再生
曲の停止は、<OTOSTOP>共通です
|
|