リファレンス 8 ドキュメント 4 サンプル 13
標準機能 282 hgimg 156 hspcmp 19 hspda 13 hspdb 8 hspdx 44 hspext 60 hspsock 12

標準機能

Version 2.61 Date 2004/04/01 Author onitama
Version 2.61 Date 2004/03/01 Author onitama
Version 2.61 Date 2004/03/01 Author onitama (ヘルプファイル作成 sprocket)
Version 2.61 Date 2004/03/01 Author tom

目次 (16 グループ / 282 ページ)

HSPシステム制御命令 3
OSシステム制御命令 34
オブジェクト制御命令 57
システム変数 30
ファイル操作命令 9
プリプロセッサ命令 18
プログラム制御マクロ 13
プログラム制御命令 20
マルチメディア制御命令 4
メモリ管理命令 10
代入命令 3
基本入出力制御命令 14
拡張入出力制御命令 24
文字列操作命令 16
特殊代入命令 2
画面制御命令 25

HSPシステム制御命令

logmes
実行履歴メッセージ記録
実行履歴(ログ)にメッセージを記録します。 実行履歴(ログ)記録モードに関わらず、必ずログ記録されます。 ある時点での変数の内容や、通過チェックなどに利用できます。
logmode
実行履歴モード設定
実行履歴(ログ)記録の設定を行ないます。 p1で、どのような時に記録を行なうかを以下の中から指定します。 複数の項目を指定する場合は、項目の値を合計したものを指定してください。
skiperr
エラースキップ設定
エラースキップモードの設定をします。モードを1にした場合 には、HSP実行中にエラーが起こっても、エラーメッセージを出 さずにそのまま実行を続けます。モードを0にすると、解除され ます。 エラースキップモード時にエラーが起こるとシステム変数err にエラーコードを入れて実行を続けます。

OSシステム制御命令

_makewnd
WinAPIのCreateWindowAを呼び出す
v1に代入されたパラメータを使用してCreateWindowAを呼び出します。 v1にはx座標, y座標, 幅, 高さ, スタイル, 親ウィンドウのハンドル, dwExStyle の順にパラメータを代入します。 s2は作成するウィンドウのクラス名です。
ll_bin
16進文字列をバイナリに変換
"01CDBF"などの16進文字列をバイナリに変換して、変数v1に代入します。 文字列の中に含まれるタブ、改行、スペースは無視されます (正確にはASCIIコード0x20以下の文字)。 0~9、A~F、a~f以外の文字が現れた場合、変換はそこでストップされます。
ll_call
DLLのロード、関数呼び出し
ll_dllでセットしたDLLをロードし、ll_funcで設定した関数呼び出します。 ll_call命令を使った後、システム変数statに以下の値がセットされます。 ll_funcで設定した関数の返り値は、ll_retで取得できます。
ll_callfnv
引数が無い関数の呼び出し
n1で指定した関数を呼び出します。 n1にはll_getprocで取得した関数のポインタなどを使います。 関数の返り値はll_retを使って取得します。
ll_callfunc
引数がある関数の呼び出し
v1で指定した引数をn2個使い、n3で指定した関数を呼び出します。 n3にはll_getprocで取得した関数のポインタなどを使います。 関数の返り値はll_retを使って取得します。
ll_dll
dllの名前を設定
使用するDLLの名前を設定します。この時点ではまだDLLはロードされません。 DLLの名前を設定すると、以前にロードされていたDLLがあった場合、 以前のDLLは開放されます。
ll_free
DLLの開放
ll_callでロードされたDLLを開放します。 プログラム中でロードしたDLLが必要なくなったときこの命令を使います。 この関数はプログラム終了時にHSPから自動的に呼び出されるので、 プログラムが終了してしまうときにはこの関数を使わなくても大丈夫です。
ll_func
関数名を設定
関数名を設定します。ll_call命令を使うとここで設定した関数が呼び出されます。 ウィンドウズAPIの関数名は、文字列にUnicodeを使うタイプは'W'、そうでないとき (ANSIタイプ)は'A'が付くものが多いので注意してください。 ('W'も'A'も付かないものもあります。
ll_getproc
DLL内の関数のポインタを取得
ll_libloadで取得したDLLから関数s2のポインタを取得し、 変数v1に取得したポインタを代入します。 取得した関数のポインタはll_callfunc,ll_callfnvで使います。 (この命令はWin32APIのGetProcAddressそのものです。
ll_getptr
変数のポインタを取得
変数v1のポインタを知りたいときに使います。 ll_retでv1のポインタを取得できます。
ll_libfree
DLLの開放
ll_libloadを使ってロードしたDLLを開放します。 必要がなくなったDLLはこの命令で開放してください。 (この命令はWin32APIのFreeLibraryそのものです。
ll_libload
DLLのロード
s2で指定したDLLをロードし、変数v1にDLLのハンドルを代入します。 (この命令はWin32APIのLoadLibraryそのものです。
ll_n
数値引数の設定
数値型の引数を設定します。関数呼び出しの際にn2番目の引数にn1の値が使われます。 n2には初めの引数を0番目と数えて数値を入れてください。 n2を省略(0を代入)すると、n1は以前に設定した引数の次の引数として扱われます。 n2に-1を代入すると、再び0番目からの入力になります。
ll_p
ポインタ引数の設定
ポインタ型の引数を設定します。関数呼び出しの際にn2番目の引数にv1に指定した 変数へのポインタが使われます。 引数にバッファへのポインタを使いたいときなどに使います。 NULLを使いたいときは、引数のタイプを数値型にして引数に0を代入してく ださい。n2についてはll_nと同様です。
ll_peek
ポインタを使った読み込み
n2で指定したポインタから変数v1へn3バイト読み込みます。 n3を省略(0を代入)するとn2を文字列のポインタとみなし、 文字列全てを読み込みます。
ll_peek1
ポインタを使った1バイトの読み込み
n2に指定したポインタから変数v1へ1バイト読み込みます。
ll_peek2
ポインタを使った2バイトの読み込み
n2に指定したポインタから変数v1へ2バイト読み込みます。
ll_peek4
ポインタを使った4バイトの読み込み
n2に指定したポインタから変数v1へ4バイト読み込みます。
ll_poke
ポインタを使った書き込み
n2で指定したポインタへ変数v1の内容をn3バイト書き込みます。 n3を省略(0を代入)するとv1を文字列変数とみなし、 文字列全てを書き込みます。
ll_poke1
ポインタを使った1バイトの書き込み
n2で指定したポインタへn1で指定した値を1バイト書き込みます。
ll_poke2
ポインタを使った2バイトの書き込み
n2で指定したポインタへn1で指定した値を2バイト書き込みます。 普通は0x11FFはメモリに FF 11 と書き込まれますが、(Little Endianの場合) オプションを0以外の値にすると11 FF と書き込みます。
ll_poke4
ポインタを使った4バイトの書き込み
n2で指定したポインタへn1で指定した値を4バイト書き込みます。 普通は0x11FF22CCはメモリに CC 22 FF 11 と書き込まれますが、(Little Endianの場合) オプションを0以外の値にすると 11 FF 22 CC と書き込みます。
ll_ret
呼び出した関数の返り値を取得
ll_funcで設定した関数をll_callで呼んだ後、その関数の返り値を取得する ときにこの命令を使います。 v1には必ず数値型変数を使ってください。v1に文字列変数を使った場合 システム変数statに1が代入され、関数の返り値は取得できません。
ll_retset
関数の返り値を入れる変数を指定
ll_retsetを使用するとll_retで取得する値がv1に指定した変数に 代入されます。
ll_s
文字列引数の設定
文字列型の引数を設定します。関数呼び出しの際にn2番目の引数にs1に代入され ている文字列へのポインタが使われます。 引数に文字列へのポインタを使いたいときにこの命令を使います。 n2についてはll_nと同様です。
ll_str
メモリの内容を16進文字列に変換
n2で指定したポインタ先のメモリの内容をn3バイトだけ16進文字列に変換します。 HSP標準命令のstrとは動作が違うので注意してください。 v1のサイズが足りない場合は変換が途中でストップされ、statに2が代入されます。
ll_type
引数のタイプを設定(小文字でも大文字でも良い)
ll_funcで設定する関数の引数のタイプを設定します。 引数のタイプは以下の通りです。
ll_z
文字列引数の設定(2)
文字列型の引数を設定します。関数呼び出しの際にn2番目の引数にn1に代入され ている文字列へのポインタが使われます。 引数に文字列へのポインタを使いたいときにこの命令を使います。 ll_zはll_sと違いメモリを新たに確保し、それに文字列をコピーしたものを使い ます。
sendmsg
WinAPIのSendMessageAを呼び出す
v1に代入されたパラメータを使用してSendMessageAを呼び出します。 SendMessageAの返り値はdllretとstatに代入されます。
ss_chgpwd
Windows標準のパスワード変更ダイアログ
Windows標準のパスワード変更ダイアログを呼び出します。
ss_chkpwd
Windows標準のパスワードチェックダイアログ
Windows標準のパスワードチェックダイアログを呼び出します。 ただし、コントロールパネルの'画面のプロパティ'で'パスワードによる保護'が チェックされている場合のみです。
ss_running
スクリーンセーバーが作動しているかシステムに知らせる
スクリーンセーバーが作動しているかシステム(Windows)に知らせます。 n1に1を代入すると、システム(Windows)にスクリーンセーバーが 作動中であることを知らせます。 n1に0を代入すると、スクリーンセーバーは作動してない、とシステムに知らせます。
verinfo
バージョン情報取得
s1で指定したファイルから、バージョン情報を取得します。 s1にはdllやexeなどのバイナリファイルを指定します。 refstrにバージョン情報が代入されます。 16bitファイルからはバージョンを取得できません。 エラーが起きた場合はstatに1が代入されます。
winver
Windowsのバージョン取得
ウィンドウズのバージョンを取得します。 変数には以下の値が入ります。

オブジェクト制御命令

_clrobj
llmodのモジュールで作成したオブジェクトを消去する
llmodのモジュールで作成したlistview,progbox,trackbox,treebox,udbtn などのオブジェクトを消去します。 ※llmodで作成したオブジェクトはHSP標準命令のcls、screenなどで消去されません。
_cls
llmodのモジュールで作成したものを含む全てのオブジェクトを消去する
llmodのモジュールで作成したlistview,progbox,trackbox,treebox,udbtn などのオブジェクトとHSP標準命令で作成したオブジェクトを全て消去します。 n1は_clsの内部で呼び出されているHSP標準命令のclsに渡すパラメータとして使用されます。
_objsel
llmodのモジュールで作成したオブジェクトをアクティブにする
n1に指定したオブジェクトをアクティブにします。 n1を-1にすると現在アクティブになっているオブジェクトのIDを statに代入します。
btnimg
buttonに画像を貼りつける
buttonに画像を貼りつけます。
button
ボタン表示
カレントポジションにオブジェクトとして押しボタンを配置 します。ボタンには、"name"で指定された文字列が書かれ、 マウスでボタンをクリックすると、*labelで指定した場所に プログラムの制御が移ります。 オブジェクトの大きさはobjsize命令で指定することができま す。
chkbox
チェックボックス表示
カレントポジションにオブジェクトとしてチェックボッ クスを配置します。チェックボックスには、"strings"で 指定した文字列の左側に、カーソルでON/OFFを切り替える ことのできるスイッチがついたオブジェクトです。
clrobj
オブジェクトをクリア
button命令やmesbox命令などで出したオブジェクトを消去します。 p1,p2を省略して、clrobjだけを実行させると画面上のオブジェクト がすべて消去されます。
combox
コンボボックス表示
カレントポジションにオブジェクトとして、コンボボックスを配置します。 コンボボックスは、複数の文字列要素の中から1つを選択させることのできる入力オブジェクトです。 オブジェクトの大きさは、objsize命令で設定した大きさになります。
getobjsize
オブジェクトのサイズと位置取得
オブジェクトのサイズと位置を取得します。 n2にはbuttonやlistviewなどのIDを代入します。 v1にはオブジェクトのサイズ、位置が以下のように代入されます。
input
入力ボックス表示
カレントポジションにオブジェクトとして入力ボックスを 配置します。p2,p3で大きさを指定して、場所はカレント ポジションからになります。p2,p3が省略された場合は、 objsizeで指定されたサイズになります。 入力ボックスは、キーボードから直接入力することのできる 小さな窓です。
listadd
リストビューにアイテムを追加
リストビューのn1番目の位置にアイテムをつけ加えます。 n3には何番目の欄に追加するかを指定するインデックス、 n4にはアイコン番号、n5にはアイテムの状態を入れます。 欄への追加は、listaddclで欄を追加しているときのみ有効です。
listaddcl
リストビューに欄を追加
欄を追加します。 n3を省略したときのデフォルト値は100です。
listbox
リストボックス表示
カレントポジションにオブジェクトとして、リストボックスを配置します。 リストボックスは、複数の文字列要素の中から1つを選択させることのできる入力オブジェクトです。 オブジェクトの大きさは、objsize命令で設定した大きさになります。
listdel
リストビューのアイテムを消去
n1番目のアイテムを消去します。 n1を-1にすると全てのアイテムを消去します。
listdelcl
欄を消去
n1番目の欄を消去します。
listget
リストビューのアイテムを取得
主にアイテムのインデックスを取得します。 n3で以下の値を代入すると取得するものが変わってきます。
listhit
マウスの下にあるアイテムを取得
マウスの下にあるアイテムのインデックスを取得します。 statにマウスの下にあるアイテムのインデックスが代入されます。 マウスの下にアイテムが無ければ-1が代入されます。
listicon
リストビューのアイコンを設定
リストビューのアイテムのアイコンを設定します。 アイコンをセットするには、imgモジュールが必要です。 ※必ず、listview.asより先にimg.asをインクルードしてください。
listmax
リストビューのアイテムの数を取得
リストビュー内のアイテムの数を取得します。 n2を1にするとリストビュー内に完全に見えているアイテムの数を取得します。
listsel
リストビューのアイテムを選択
n1番目のアイテムを選択します。 n2を-1にすると選択状態を解除します。 n2を省略するとフォーカスをあわせて、選択状態にします。
listview
リストビューの作成
リストビューを作成します。 リストビューは、Explorerの右側にある様なオブジェクトです。 この命令を呼び出した後、statにリストビューのIDが代入されます。 スタイル スタイルは以下の値を足して、複数のスタイルを指定することができます。
mesbox
メッセージボックス表示
ウインドゥ上にオブジェクトとして、メッセージボックス(メッセージ表示用の窓) を配置します。p2,p3で大きさを指定して、 場所はカレントポジションからに なります。 メッセージボックスのスタイルに設定する値(p4)は、以下の通りになります。
msgdlg
拡張dialog(type 0~3 )
HSPのdialog命令の拡張版です。
multiopen
複数のファイル名を取得
HSPのdialog(type 16,17)で複数のファイルを選択できるようにしたものです。 multiopen呼び出し時に、v1.0,v1.1にそれぞれv1,v2のサイズを代入しておきます。 v2には例のような形式でフィルタを代入します。
objgray
オブジェクトの使用可、不可設定
buttonなどのオブジェクトを使用可にしたり、不可にしたりします。 n1にはbuttonやlistviewなどのIDを代入します。 n2を0にするとオブジェクトを使用できない状態にし、1にすると使用できる 状態にします。 n2を-1にするとそのオブジェクトが使用可か不可かを調べます。
objmode
オブジェクトモード設定
button,input,mesboxなどのオブジェクト配置命令で使用される スタイル等を設定するための命令です。 p1でフォント設定及び、スタイルに関するモードを指定することができます。 これにより、以降のオブジェクト配置命令実行時のスタイル設定が変わります。
objprm
オブジェクトの内容を変更
button命令やinput,mesbox命令などで画面上に配置したオブジェクトの 持つ内容やパラメータを変更します。 p1には、オブジェクトIDを指定します。オブジェクトIDは、0から順番に 画面上に表示したオブジェクト1つ1つに割り当てられていく番号です。
objsel
オブジェクトに入力フォーカスを設定
p1で指定したオブジェクトIDに入力フォーカスを合わせます。 入力フォーカスを合わせることにより、mesbox命令やinput命令で 配置した入力ボックスの中に入力カーソル(キャレット)を出すこと ができます。
objsend
オブジェクトにメッセージを送る
button命令やinput,mesbox命令などで画面上に配置したオブジェクトに対して、 Win32メッセージを送ります。
objsize
オブジェクトサイズ設定
ボタンや入力ボックスなどのオブジェクトの大きさを設定します。 p3でボタンやメッセージが置かれた後にカレントポジションが 移動する最低量を指定することができます。これにより、ボタン とメッセージを連続して置いた時に同じ大きさでスペースが空く ようになります。
progrng
プログレスボックスの範囲を設定
プログレスボックスの範囲の設定をします。 設定できる値は、最小値が0以上、最大値は65535以下です。 n3に1を代入すると最大値が$ffffffffまでになります。ただしこの設定は comctl32.dllのバージョンが4.70以上でなければ無効です。
progset
プログレスボックスの各設定
プログレスボックスの各設定を行います。 セットするタイプは以下の通りです。
resizeobj
オブジェクトのサイズ変更
オブジェクトn1のサイズを変更します。 v2には幅、高さ、x座標,y座表の順に代入しておきます。 n3を1にすると位置を変えずにサイズだけ変更します。 n3を2にするとサイズを変えずに位置だけ変更します。
sel_listview
操作するリストビューを選択
この命令使用後はn1で指定したリストビューに対して各操作を行います。 リストビュー新規に作成すると、自動的にそのリストビューが 各操作の対象になります。 複数のリストビューを作成したときは、この命令で操作するリストビュー を選択してください。
sel_progbox
操作するプログレスボックスを選択
この命令使用後はn1で指定したプログレスボックスに対して各操作を行います。 プログレスボックス新規に作成すると、自動的にそのプログレスボックスが 各操作の対象になります。 複数のプログレスボックスを作成したときは、この命令で操作するプログレス ボックスを選択してください。
sel_trackbox
操作するトラックボックスを選択
この命令使用後はn1で指定したトラックボックスに対して各操作を行います。 トラックボックス新規に作成すると、自動的にそのトラックボックスが各操作の対象 になります。 複数のトラックボックスを作成したときは、この命令で操作するトラックボックス を選択してください。
sel_treebox
操作するツリーボックスを選択
この命令使用後はn1で指定したツリーボックスに対して各操作を行います。 新規にツリーボックスを作成すると、自動的にそのツリーボックスが各操作の対象 になります。 複数のツリーボックスを作成したときは、この命令で操作するツリーボックスを 選択してください。
sel_udbtn
操作するアップダウンボタンの選択
この命令使用後はn1で指定したアップダウンボタンに対して各操作を行います。 アップダウンボタン新規に作成すると、自動的にそのアップダウンボタンが 各操作の対象になります。 複数のアップダウンボタンを作成したときは、この命令で操作するアップダウン ボックスを選択してください。
strtoint
文字列を数値に変換
文字列を数値に変換します。
tooltip
ツールチップを付ける
オブジェクトにツールチップを付けます。 ツールチップとはマウスカーソルがbuttonなどのオブジェクト上で一定時間停止したときに 現れる小さなウィンドウです。
trackbox
トラックボックスの作成
トラックボックスを作成します。 トラックボックスとはつまみを持ったオブジェクトです。 決まった選択範囲の中から数値を得たいときなどに使うのに便利です。 この命令を呼び出した後、statにトラックボックスのIDが代入されます。
trackmrk
トラックボックスの目盛りの設定と取得
トラックボックスの目盛りの位置を設定、取得します。 n2の値 機能 0 n1で指定した位置に目盛りを付けます。 1 付けられている目盛りの数を取得します。 2 間隔をn1で指定した値にして目盛り付けます。
trackpos
トラックボックスのつまみの位置の設定と取得
トラックボックスのつまみの位置を設定します。 n2を1にするとつまみの位置を取得します。 この命令を呼び出した後のstatの値 n2を1にするとstatにつまみの位置が代入されます。 それ以外はstatは0になります。
trackrng
トラックボックスの範囲の設定と取得
トラックボックスの範囲を設定、取得します。 n3を1にすると設定範囲の値を取得します。 この命令を呼び出した後のstatの値 n3を1にして、n1を1にするとtrackboxの最小位置、n2を1にすると 最大位置がstatに代入されます。 それ以外はstatは0になります。
tracksel
トラックボックスの選択範囲の設定と取得
トラックボックスの選択範囲を設定、取得します。 ただし、トラックボックス作成時に'つまみの部分に選択領域を付ける'($20)という スタイルを指定している場合に限ります。 n3を0にするとn1-n2の範囲を選択します。 n3を1にすると開始位置(n1の値)のみをセットします。
treeadd
treeboxにアイテムを追加
ツリーボックスにn1を親にしてアイテムを加えます。 n1に0を代入すると一番目のアイテムになります。 n3にはどのようにアイテムを追加するか、n4には収縮している時のアイコン番号 (0から)、n5には展開しているときのアイコン番号(0から)を入れます。
treebox
treeboxの作成
ツリーボックスを作成します。 ツリーボックスとはエクスプローラーの左側にあるようなものです。 スタイルは以下の値を組み合わせて使うことができます。
treedel
ツリーボックスのアイテムを消去
n1で指定したアイテムを消去します。
treeget
ツリーボックスの各情報を取得
主にアイテムのIDを取得します。 n2で以下の値を代入すると取得するものが変わってきます。
treehit
マウスの下にあるアイテムを取得
マウスの下にあるアイテムのIDを取得します。 statにマウスの下にあるアイテムのIDが代入されます。 マウスの下にアイテムが無ければ0が代入されます。
treeicon
ツリーボックスのアイコンを設定
ツリーボックスのアイテムのアイコンを設定します。 アイコンをセットするには、imgモジュールが必要です。 ※必ず、treebox.asより先にimg.asをインクルードしてください。 この命令実行後にstatにセットしたアイコンについての情報が入った特別な値が返されます。
treemax
ツリーボックスのアイテムの数を取得
ツリーボックス内のアイテムの数を取得します。 n2を1にするとツリーボックス内に完全に見えているアイテムの数を取得します。
treesel
ツリーボックスのアイテムを選択
n1で指定したアイテムを選択します。 n2に$10を足すとアイテムが子をもっているとき、そのアイテムを収縮します。 n2に$20を足すとアイテムが子をもっているとき、そのアイテムを展開します。
treesort
ツリーボックスのアイテムをソート
n1で指定したアイテムの子をソートします。 n1を省略するとトップのアイテムをソートします。
udbtn
アップダウンボタンの作成
アップダウンボタンを作成します。 アップダウンボタンとは矢印ボタンを持ったオブジェクトです。 input等の入力ボックスから数値を得たいときなどに使うと便利です。 (一応button等にも付けることはできます。) n4にはbuttonなどのオブジェクトのIDを入れます。
udget
アップダウンボタンの各種情報の取得
アップダウンボタンの各種情報を取得します。 取得するものはn1の値によって異なります。 各情報はstatに代入されます。 n1の値 0 アップダウンボタンの相手を取得します。 1 アップダウンボタンの範囲を取得します。
udset
アップダウンボタンの設定
アップダウンボタンの設定をします。 設定するものはn1の値によって異なります。 n1の値 0 アップダウンボタンの相手を設定します。 n2にオブジェクトのIDを指定します。 1 アップダウンボタンの範囲を設定します。

システム変数

bval
RGB カラーの B (青) 輝度情報
RGB カラーの B (青) 輝度情報が代入されます。この値は、pget, getpal, dialog (カラー選択ダイアログ) 命令で取得されます。
cmdline
コマンドラインに渡された引数の文字列
コマンドラインに渡された引数の文字列が代入されています。 システム変数cmdlineには、最大2048byteまでの引数が格納されます。
cnt
repeat~loop ループのカウンター
repeat~loop ループのカウンターが代入されます。
csrx
カレントポジションの X 座標
カレントポジションの X 座標が代入されます。カレントポジションの移動は、pos 命令で行います。
csry
カレントポジションの Y 座標
カレントポジションの Y 座標が代入されます。カレントポジションの移動は、pos 命令で行います。
curdir
カレントディレクトリパス
カレントディレクトリパスの文字列が代入されます。
dispx
ディスプレイの X 方向解像度
ディスプレイの X 方向の解像度が代入されます。
dispy
ディスプレイの Y 方向解像度
ディスプレイの Y 方向の解像度が代入されます。
err
エラーコード
HSP のエラーコードです。エラーコードとメッセージの関係は次のようになっています。 ・1 解釈できない HSP コードです コンパイルされた HSP の中間コードが間違っています。通常は表示されないエラーです。
exedir
起動した EXE ファイルのあるディレクトリ
起動した EXE ファイルのあるディレクトリパスの文字列が代入されます。
gval
RGB カラーの G (緑) 輝度情報
RGB カラーの G (緑) 輝度情報が代入されます。この値は、pget, getpal, dialog (カラー選択ダイアログ) 命令で取得されます。
hspstat
HSP ランタイムの情報を取得する
HSP ランタイムの情報が代入されます。以下の情報がすべて合計された値になります。
hspver
HSP のバージョン番号
HSP のバージョン番号が代入されます。バージョンコード + マイナーバージョンコードの値になります。
iparam
割り込み要因を示す値
割り込み要因を示す値が代入されます。
looplev
repeat~loop のネストレベル
repeat~loop のネストレベルが代入されます。
lparam
割り込み時の lParam
割り込み時に保存される Windows のシステム値 (lParam) が代入されます。
mousex
マウスカーソルの X 座標
マウスカーソルの X 座標が代入されます。
mousey
マウスカーソルの Y 座標
マウスカーソルの Y 座標が代入されます。
paluse
Windows がパレットモードかどうか
Windows がパレットモード (256 色) の時は 1 、それ以外の時は 0 代入されます。
prmx
ginfo 命令で取得される X 値
ginfo 命令で取得される X 値が代入されます。
prmy
ginfo 命令で取得される Y 値
ginfo 命令で取得される Y 値が代入されます。
refstr
ファイル選択ダイアログで選択されたファイル名
ファイル選択ダイアログで選択されたファイル名が代入されます。
rval
RGB カラーの R (赤) 輝度情報
RGB カラーの R (赤) 輝度情報が代入されます。この値は、pget, getpal, dialog (カラー選択ダイアログ) 命令で取得されます。
stat
色々な命令のステータスなど
色々な命令のステータスなどが代入されます。
strsize
getstr 命令で読み出したバイト数
getstr 命令で読み出したバイト数が代入されます。
sublev
サブルーチンのネストレベル
サブルーチン (モジュール) のネストレベルが代入されます。
windir
Windows がインストールされているディレクトリ
Windows がインストールされているディレクトリパスが代入されています。
winx
現在のウィンドウ描画エリア X サイズ
現在のウィンドウ描画エリア X サイズが代入されています。
winy
現在のウィンドウ描画エリア Y サイズ
現在のウィンドウ描画エリア Y サイズが代入されています。
wparam
割り込み時の wParam
割り込み時に保存される Windows のシステム値 (wParam) が代入されます。

ファイル操作命令

bcopy
ファイルのコピー
"filename1"のファイルを"filename2"というファイル名にコピー します。
bload
バッファにファイルをロード
ファイルの内容をメモリバッファに読み込みます。 通常は、sdim命令で確保したメモリバッファに対して使用しますが、 通常の変数や、配列変数の内容に対して使うこともできます。 通常は、p2のバッファサイズを指定しなくても、自動的に変数 バッファのサイズに合わせてデフォルトが設定されます。
bsave
バッファをファイルにセーブ
メモリバッファの内容をファイルに書き出します。 通常は、alloc命令で確保したメモリバッファに対して使用しますが、 通常の変数や、配列変数の内容に対して使うこともできます。 ファイルのオフセット値を指定すると、その値だけファイルの先頭からずらした 場所からが操作の対象になります。
chdir
ディレクトリ移動
"dirname"で指定した名前のディレクトリに移動します。 指定したディレクトリが存在しないか、書式が間違っている場合はFile I/O errorとなります。 カレントディレクトリは、システム変数curdirで参照することができます。
delete
ファイル削除
"filename"で指定したファイルを削除します。 指定したファイルが存在しないか、書式が間違っている場合はFile I/O errorとなります。
dirlist
ディレクトリ一覧を取得
カレントディレクトリのファイル一覧を作成して、変数に代入します。 "filemask"で、一覧を作成するためのファイルマスクを指定します。 ファイルマスクは、「*.*」のようなワイルドカードの形で指定するパラメータです。
exist
ファイルのサイズ取得
"filename"で指定したファイルが存在するかをチェックして、 そのファイルサイズを取得します。exist命令が実行されると、 システム変数strsizeに結果が反映されます。 ファイルが存在する場合は、そのファイルサイズがstrsizeに 代入されます。
memfile
メモリストリーム設定
メモリストリーム機能によってファイルの替わりとして扱うメモリ 空間を持った変数を設定します。 p1で指定された変数は、これ以降に「MEM:ファイル名」で 指定されたファイルの読み出し元となります。 p2で、オフセット(読み出す際の先頭位置)を指定します。
mkdir
ディレクトリ作成
"dirname"で指定した名前でディレクトリを作成します。 ディレクトリは1階層先までしか作成することができません。 作成中にエラーが発生した場合はFile I/O errorとなります。

プリプロセッサ命令

#const
マクロ名の定数定義
指定されたマクロ名に置換え文字列を設定します。 #defineと同様ですが、#constは定数(数値)の置き換えを行なう場合に あらかじめ計算を行なった結果を置き換えます。
#deffunc
新規命令を割り当てる
ユーザーによる新規命令を指定します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 #deffunc命令で定義した位置より以降は、指定された名前を命令語として 使用することが可能です。 新規命令は、#deffuncで指定された行以降が実行される内容になります。
#define
新規マクロを登録する
マクロ名で指定されたキーワードを指定された定義に置き換えられるようにプリプロセッサに登録をします。 #defineマクロは、あくまで個人がスクリプトを書きやすくカスタマイズしたい 場合に使うもので、初心者向きではありません。
#else
コンパイル制御を反転
#if、#ifdef、#ifndefなどのコンパイル制御区間内で、ON/OFFを反転します。 コンパイル制御についての詳細は、#if命令のリファレンスを参照してください。
#endif
コンパイル制御ブロック終了
#if、#ifdef、#ifndefなどのコンパイル制御区間を終了します。 コンパイル制御についての詳細は、#if命令のリファレンスを参照してください。
#epack
PACKFILE追加ファイル指定
実行ファイル自動作成(ctrl+F9)で、packfileに追加されるファイルを 指定します。指定されたファイルは、実行ファイル作成時に リソースとして一緒にパックされます。 #epackは、指定ファイルを暗号化してパックします。 暗号化を行なう必要がない場合は#packをお使い下さい。
#fpbit
固定小数値bit数の指定
スクリプト中で固定小数値を記述した場合に変換される 固定小数部のビット数を設定します。デフォルトは16bitになっています。 たとえば、「1.0k」という小数を指定したとすると、固定小数では 「65536」という整数として扱われます。
#func
外部DLL呼び出し命令登録
外部DLLを呼び出すための新しい命令をコンパイラに登録します。 新規名称、関数名、タイプをスペースで区切って書きます。関数名は 大小文字を含めて厳密に書かなければなりません。 func命令が処理されると、コンパイラに新規名称で指定した命令が追加 されます。
#global
モジュールの終了
モジュール区間を終了し、以降を通常のプログラム領域に戻します。 モジュールについての詳細は、#module命令を参照してください。
#if
数値からコンパイル制御
コンパイルのON/OFFを指定します。 #ifは指定した数値が0ならば以降のコンパイル出力をOFFにして コンパイル結果を無視します(プログラムとして実行されません)。 数値が0以外の場合は、出力がONとなります。 このコンパイル制御は、#endifが出るまでの区間を対象にします。
#ifdef
マクロ定義からコンパイル制御
コンパイルのON/OFFを指定します。 #ifは指定したマクロが定義されていなければ以降のコンパイル出力をOFFにして コンパイル結果を無視します。定義されている場合は、出力がONとなります。 このコンパイル制御は、#endifが出るまでの区間を対象にします。
#ifndef
マクロ定義からコンパイル制御
コンパイルのON/OFFを指定します。 #ifは指定したマクロが定義されていれば以降のコンパイル出力をOFFにして コンパイル結果を無視します。定義されていない場合は、出力がONとなります。 このコンパイル制御は、#endifが出るまでの区間を対象にします。
#include
別ファイルを結合
インクルードするファイルを指定します。 ここで指定されたファイルは、もとのファイルに結合してコンパイルされます。
#module
モジュールの開始
#module以降の区間をモジュールとして別な空間に割り当てます。 モジュール内の変数やラベルは、モジュール外のものからは独立したものに なります。
#pack
PACKFILE追加ファイル指定
実行ファイル自動作成(ctrl+F9)で、packfileに追加されるファイルを 指定します。指定されたファイルは、実行ファイル作成時に リソースとして一緒にパックされます。 #packは、通常の形式でパックします。暗号化してパックしたい場合は#epackをお使い下さい。
#packopt
自動作成オプション指定
実行ファイル自動作成の動作を指定します。 キーワード名、の後スペース又はTABを入れてパラメーター (文字列の場合は「"strings"」のように指定)を記述して下さい。 #packoptで指定できるキーワードは以下の通りです。
#undef
マクロ名の取り消し
すでに登録されているマクロ名を取り消します。 登録されていないマクロ名に対して指定してもエラーにはならず 無視されます。
#uselib
外部DLLの指定
HSPから呼び出す外部DLLのファイル名を指定します。 DLLのファイル名は、拡張子も含めて完全に書く必要があります。

プログラム制御マクロ

_break
マクロループを脱出する
標準マクロによって定義されている繰り返しマクロ、 while~wend、do~until、for~next間のループから抜け出します。 現在以降の繰り返しブロック内は実行せずに、ループの次にある命令から再開されます。
_continue
マクロループをやり直す
標準マクロによって定義されている繰り返しマクロ、 while~wend、do~until、for~next間のループをやり直します。 現在以降の繰り返しブロック内は実行せずに、次の繰り返しから再開されます。
case
デフォルト比較指定
switch~swendの比較ブロック内で、比較元との条件を指定して正しい場合に 実行される処理を指定します。 詳しくはswitchマクロの項を参照してください。
default
デフォルト比較指定
switch~swendの比較ブロック内で、それまでのcaseにあてはまらない条件の時に 実行される処理を指定します。 詳しくはswitchマクロの項を参照してください。
do
条件付き繰り返し開始
untilまでの繰り返し区間の始まりを指定します。 繰り返し条件は、untilマクロによって記述されます。 詳しくはuntilマクロの項を参照してください。
for
指定回数繰り返し開始
パラメーターとして変数名、初期値、終値、増分などを指定すると、 for~nextの間を指定回数繰り返します。 カッコ内は省略した場合の値です。変数名は省略できません。 指定された変数をカウンターとして使用し、初期値から始まって、 1回繰り返すごとに増分を足していきます。
next
指定回数繰り返し終了
forで指定した繰り返し区間の終わりを指定します。 詳しくはforマクロの項を参照してください。
swbreak
比較実行脱出指定
switch~swendの比較ブロック内から脱出します。 詳しくはswitchマクロの項を参照してください。
swend
比較ブロック終了
switchで指定した比較ブロックの終わりを指定します。 詳しくはswitchマクロの項を参照してください。
switch
比較ブロック開始
switch~case~swendは、ブロック内に複数の条件判断と処理をまとめて 書くことができる構文です。 p1で指定する比較元のパラメーターは、変数または式を指定することができます。
until
条件付き繰り返し終了
untilに続く条件が満たされるまで、doからuntilまでの部分を繰り返します。 条件が満たされている場合でも、最低一回はdo~until内を実行します。 untilに続く条件を省略した場合は、繰り返しを行ないません。
wend
条件付き繰り返し終了
whileで指定した繰り返し区間の終わりを指定します。 詳しくはwhileマクロの項を参照してください。
while
条件付き繰り返し開始
whileに続く条件が満たされている間だけ、whileからwendまでを繰り返します。 条件が満たされていない場合はねwhileからwendまでを実行しません。 whileに続く条件を省略した場合は、無限に繰り返しを行ないます。

プログラム制御命令

await
一定時間待つ(ACTIVE)
プログラムの実行を一定時間だけ中断します。 wait命令と似ていますが、await命令は前回waitした時間からの待ち 時間を指定します。これにより、描画速度の違いなどから時間が 早く過ぎることを防止することができます。リアルタイムで更新 される画面などの速度を一定に保つ時に使用します。
break
ループから抜ける
repeat~loop間のループから、強制的に抜け出します。
continue
ループをやり直す
repeat~loop間のループをやり直します。 continue命令が実行されると、repeat命令まで戻り次の繰り返しを実行します。
end
プログラム終了
HSPのプログラムを終了します。 end命令はスクリプトのどこにあってもかまいません。 end命令が実行されると、そのアプリケーションは終了します。 スクリプトの最後まで達した場合も、同様にHSPのプログラムを終了します。
exec
Windowsのファイルを実行する
execは"filename"で指定したファイル名のアプリケーションを実行します。 拡張子がEXEの場合は、拡張子を省略することができます。 p1で実行時のモードを選ぶことができます。p1を省略した場合は0になります。
exgoto
指定ラベルに条件ジャンプ
valで指定された変数に代入されている値と、p2の比較値により 指定したラベルに条件でジャンプします。 比較方法は、p1の比較フラグが0以上(正値)の場合は(valの値>=p2)が成立した時にジャンプ、 p1が-1以下(負値)の場合は(valの値<=p2)が成立した時にジャンプを行ないます。
gosub
指定ラベルにサブルーチンジャンプ
サブルーチンジャンプをします。 gosub命令は、*labelで指定した場所にジャンプをします。 その後、return命令があるとgosub命令の次の行に復帰して実行を続けます。 gosub~returnは最大32重までネスティングが可能です。
goto
指定ラベルにジャンプ
指定したラベルに無条件でジャンプします。 以降は、ラベル名で指定された場所から実行を続けます。
if
条件を満たしていればその行の命令を実行
p1の条件式が満たされていれば、それ以降の命令を 実行する。満たされていない場合は、次の行に移ります。 BASICと違い、その行の次の命令との間には:(コロン)を 入れなければいけないので注意してください。 例: a=10 if a=10 : mes "aは10です。
loop
ループの始まりに戻る
repeat命令で指定したループの終わりを指定します。 詳しくはrepeat命令の項を参照してください。
on
数値による分岐
on命令は、p1で指定された値が0,1,2…に応じて分岐先を選択します。 「on 数値 goto」または、「on 数値 gosub」のような書式で、続いて 分岐する先のラベルを1つ以上「,」で区切って記述することができます。
onclick
クリック割り込み実行指定
マウスのボタンを押した時に、自動的にジャンプする場所を指定します。 onclicky命令でラベルを指定すると、それ以降はHSPのウインドゥ上で マウスクリックがあるたびに*labelで指定したラベルにジャンプします。
onerror
エラー発生時にジャンプ
スクリプトが原因でHSP内部でエラーが発生した時に、 自動的にジャンプする場所を指定します。 通常は、エラー発生時にシステムのエラーメッセージダイアログが表示 されますが、そのかわりに指定したラベルにジャンプするように設定 されます。ジャンプ後は、以下のシステム変数に情報が代入されます。
onexit
強制終了時にジャンプ
クローズボックス(ウインドゥ右上の終了ボタン)を押した時に、 自動的にジャンプする場所を指定します。
onkey
キー割り込み実行指定
キーボードを押した時に、自動的にジャンプする場所を指定します。 onkey命令でラベルを指定すると、それ以降はHSPのウインドゥがアクティブな時に キー入力があるたびに*labelで指定したラベルにジャンプします。
repeat
ループの始まりの場所を示す
repeat~loopの間をくり返し実行します。 repeat命令は、くり返しの開始地点を示します。 loop命令は最後に通過したrepeat命令まで戻ります。つまり、 repeat 5 print "やっほー" loop のようなプログラムは、「やっほー」を5回表示します。
return
サブルーチンから復帰
gosub命令で呼び出しされたサブルーチンを終了します。 gosub~returnは最大10重までネスティングが可能です。
run
指定したファイルに制御を移す
別のファイルに書かれたHSPのプログラムを実行します。 指定するファイルはHSPのオブジェクトファイル(拡張子がAX)でなければ なりません。 オブジェクトファイルは、スクリプトエディタの「オブジェクトファイル作成」 によって作成することができます。
stop
プログラム中断
プログラムの実行を一時中断します。 ボタンがクリックされるまで待つ時などに使用します。
wait
一定時間待つ
プログラムの実行を一定時間だけ中断します。 p1に待ち時間の長さを指定します。単位は10ミリ秒になります。 (1ミリ秒=1/1000秒) CPUの速度に関係なく、どんな機種でも同じ待ち時間になります。 p1に0を指定した場合、または省略をした場合は、前回と同じ 時間だけ待ちます。

マルチメディア制御命令

mci
MCIにコマンドを送る
MCI(Multimedia Control Interface)にコマンド文字列を 送ります。MCIに対応したMIDI再生、ムービー再生などを行なう ことができます。 MCIコマンドの詳細については、Windows MCIの解説書をお読み ください。
snd
サウンド再生
sndload命令によって読み込まれたサウンドやデータを再生します。 p1でバッファの番号を指定することで、sndload命令によって 読み込まれた複数のサウンドから、どれを再生するかを 選びます。 snd命令は、通常サウンドの再生がスタートするとともに HSPは次の命令へと進みます。
sndload
サウンドファイル読み込み
サウンドデータのファイルを読み込みます。 読み込むことができる形式は以下の通りです。 WAV形式 : 拡張子 WAV : Windows標準のPCM音声データ。
sndoff
サウンド停止
snd命令によって再生中のサウンドを停止させます。

メモリ管理命令

alloc
バッファを確保
メモリ上にバッファを作成して配列変数に割り当てます。 HSP ver2.4g以降では、alloc命令によるメモリ確保はdim命令、sdim命令と 変わりありません。 alloc命令は、過去の互換性のために残された命令です。
dim
配列変数を作成
任意の要素を持つ配列変数を作成します。 例: dim a,20 上の例では、変数aの要素を20個、つまり「a.0」~ 「a.19」までを使えることになります。 パラメータを増やすことで多次元配列を作成すること も可能です。
getptr
変数のポインタを取得する
変数v2のポインタを取得し、変数v1に代入します。 取得したポインタはdllへ渡すパラメータなどに使用できます。
memcpy
メモリブロックのコピー
p1で指定された変数に割り当てられているメモリ領域に、 p2で指定された変数に割り当てられているメモリの内容をコピーします。 コピーするサイズ(1byte単位)は、p3で指定します。 大きな領域を変数に割り当てている場合などに高速なメモリコピーを 行なうことができます。
memset
メモリブロックのクリア
1byteの固定値でメモリブロックを埋めます。 p1で指定された変数に割り当てられているメモリ領域に、 p2で指定された値を、p3のサイズだけ書き込みます。 大きな領域に同じ値を書き込みたい時に有効です。 p4で、メモリ開始位置を1byte単位で調整することができます。
peek
バッファから1byte読み出し
メモリ上のバッファの任意の場所にある内容を変数に読み出します。 p1で指定した変数が数値型ならば、0~255までの値が、 文字列型ならば文字列が読み出されます。
poke
バッファに1byte書き込み
メモリ上のバッファの任意の場所に値を書き込みます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所に p3の値を書き込みます。 値は0~255までの1バイト値になります。
sdim
配列文字列型変数を作成
文字列型の配列変数を作成します。dim命令との違いは、 p2のパラメータは「文字列の最大文字数」、 p3のパラメータ以降に実際の配列要素の最大数を入れる ところです。
wpeek
バッファから1word読み出し
メモリ上のバッファの任意の場所にある内容を変数に読み出します。 peek命令と同じですが、読み出される値は2byte(16bit)になります。 p1で指定した変数が数値型ならば、0~65535までの値が、 文字列型ならば文字列が読み出されます。
wpoke
バッファに1word書き込み
メモリ上のバッファの任意の場所に値を書き込みます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所に p3の値を書き込みます。 値は0~65535までの2バイト値になります。

代入命令

int
変数を数値型にする
は変数を数値型に設定します。 変数の型を変更しても、できる限りその内容を保持しようとします。 "123"という文字列を含んだ変数を数値型に変更すると、123という数値に なります。 int a は変数aを数値型に設定します。
str
変数を文字列型にする
は変数を文字列型に設定します。 変数の型を変更する場合に、それまで保持されていた数値を文字列に変換します。 たとえば、123という数値を含んだ変数を文字列型に変更すると、"123"という文字列に なります。すでに文字列型の変数を指定した場合には、何もしません。
val
変数にp1を代入
変数名の後に「=(イコール)」をつけて、その後の数式が示す値を 代入することができます。 基本的な代入は、 tmp=5 のような形式で行ないます。これで、変数tmpに5の値が代入され ます。 p1が文字列の場合は、文字列を変数に代入しそれ以降は文字列型の変数 となります。

基本入出力制御命令

cls
画面クリア
ウインドゥ内の情報をすべてクリアします。 p1でクリアする5種類の色を指定することができます。
dialog
ダイアログを開く
Windowsの標準的な各種ダイアログボックスを画面に表示します。 dialog命令で出したダイアログは、HSPのウインドゥとは別に ポップアップして現われます。 ユーザーの操作によりダイアログを閉じるまでは、HSP スクリプトの続きは実行されません。
getkey
キー入力チェック
キーボード及びマウスボタンの状態をチェックして変数に 代入します。指定したボタンが押されていれば、1を代入し、 押されていなければ0が代入されます。キーコードで指定する 値の詳細は、以下の通りです。
gettime
日付・時刻を取得
p1で指定した変数に、p2で指定したタイプの日付・時刻 情報を代入します。 gettimeパラメータタイプは以下の通りです。
ginfo
各種情報を取得する
マウスやウインドゥについての特殊な情報を取得して、システム変数prmx,prmyに代入します。 情報のタイプはp1で指定します。省略した場合は0になります。 情報タイプとそれに対応した内容は以下の通りです。
mes
メッセージ表示
ウインドゥ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウインドゥ上の 仮想的なカーソル位置から表示され、カレントポジションが 次の行に自動的に移動します。 表示されるメッセージのフォントは、font命令で選択することができます。
mouse
マウスカーソル座標設定
マウスカーソルをp1,p2で指定した座標に変更します。 指定する座標は、ウインドゥ内の座標ではなくディスプレイでの座標(X=0~dispx/Y=0~dispy) を指定します。p1または、p2が-1の場合は、マウスカーソルの表示をOFFにします。
print
メッセージ表示
ウインドゥ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウインドゥ上の 仮想的なカーソル位置から表示され、カレントポジションが 次の行に自動的に移動します。 表示されるメッセージのフォントは、font命令で選択することができます。
randomize
乱数発生の初期化
rnd命令で発生させる乱数のパターンを初期化します。 p1に同じ値を指定して初期化された乱数は、常に同じパターン で乱数を発生させられます。p1を省略した場合は、Windowsの タイマから得られた不定な値を使って初期化します。
rnd
乱数発生
乱数を発生させて変数に代入します。 p2で乱数の範囲を指定します。0~p2の間の値が範囲になります。 p2の値は範囲に含まれません。たとえば、 例: rnd a,10 は、変数aに、0~9までの乱数を代入します。
stick
キー入力情報取得
よく使われるキーボード及びマウスボタンの状態をまとめて チェックして変数に代入します。 stick命令が実行されると以下のような複数のボタン情報が 1つの数値として、p1で指定した変数に代入されます。
sysinfo
システム情報を取得
p2で指定したタイプの情報を、p1で指定された変数に代入します。 p2のタイプにより、代入される情報が数値型か文字列型かが決まります。 タイプ指定の詳細は以下の通りです。
text
テキスト表示スピード設定
mes,print命令で画面に表示する文字のスピードを設定します。 通常は、文字表示のスピードは0で瞬時に表示されますが、 1以上を指定すると値に応じた長さのウエイトが入り表示される ようになります。
title
キャプション設定
p1の指定が省略されている場合には、ウインドゥのタイトルバー のキャプションを、"strings"の内容に設定します。

拡張入出力制御命令

about
プログラムのバージョンを表示するダイアログを作成
プログラムのバージョンを表示する時などに使われるダイアログを表示します。 アプリケーション名s1を"my.exeのバージョン情報#my.exe ver 1.00" のように#で区切ると'Microsoft my.exe ver 1.00'という表示が加わります。
console
コンソールウィンドウを作成
コンソールウィンドウを作成します。
console_color
コンソールのテキストの色設定
コンソールに表示する文字列の色を設定します。 n1は以下の値を組み合わせて使います。1+4だと紫になります。 1+4+8で明るい紫になります。
console_end
コンソールウィンドウを閉じる
コンソールウィンドウを閉じます。
console_pos
コンソールの文字表示位置設定
文字列を表示する座標を設定します。
dd_accept
ドラッグ&ドロップをできるようにする
n3で指定したウィンドウにドラッグ&ドロップ(以下D&D)をできるようにします。 ただし、ウィンドウID 1は設定できません。 dd_acceptを実行した後、ウィンドウにファイルがD&Dされるとv1で指定した変数に D&Dされたファイル名が入ります。
dd_reject
ドラッグ&ドロップをできないようにする
ドラッグ&ドロップをできないようにします。 dd_acceptを実行していない場合には効果がありません。 n2を1にするともう一度ドラッグ&ドロップをできるようにします。
dllproc
外部dllの関数を呼び出す
n4に指定したdll内のs1の関数を使用します。 関数の返り値はグローバル変数dllretに代入されます。 llmod内では主用なdllがロードされていて、そのdllを使用する場合は n4に以下の数値を使用できます。
draw_icon
アイコンの描画
n1で指定したアイコンを座標(x,y)に描画します。 この命令を使うたびにredrawを行います。複数のアイコンを描画するときは効率が悪いので n4を1にして、全てのアイコンを書き終えたらredrawを実行してください。
get_fileicon
ファイルに使用されているアイコンの取得
s2に指定したファイルに使われるアイコンを取得します。
get_icon
アイコンの取得
s2に指定したファイルから、n3番目のアイコンを取得します。 もしn3番目のアイコンが小さいアイコンをもっているときはn4を1にすると 小さいアイコンの方を取得します。 取得したアイコンはdraw_iconで描画できます。 アイコン取得に失敗したときは変数に0が代入されます。
gets
コンソールから文字列を読み込む
コンソールから文字列を取得します。 n2を省略したときの値は63です。
imeinit
IME情報を取得
IME情報を取得します。 n2にmesboxのIDを代入します。
imeopen
IMEウィンドウを開く
imeinitで取得したIMEを開きます。 n2を1にするとIMEウィンドウを閉じることができます。
imesend
IMEにメッセージを送る
IMEへメッセージを送ります。
imestr
IMEに文字列を送る
IMEに文字列を送ります。 文字列内にタブや改行があっては行けません。 文字列には半角文字(英字、かな)、全角文字(英字、ひらがな、カタカナ) が使用できます。
keybd_event
キーボード操作
キーボード操作を行います。 n1に押したいキーのキーコードを指定します。 n2を0にしてこの命令を実行するとn1を前回実行したときと同じキーコード、 n2を1にしてもう一度この命令を実行しないとキーを放したことになりません。 n2を-1にすると押して放したことになります。
linesel
mesbox内の一行を選択
mesbox n1 内のn2行を選択します。n2は0から数えます。 n2を-1にするとカーソルがある行を選択します。 n2を-2にするとmesbox内の文字全てを選択します。
mouse_event
マウス操作
マウス操作を行います。 n1に指定するタイプでマウス操作を行うことができます。 水平方向の移動量は、画面左から右へ移動させるときが正、その逆が負 垂直方向の移動量は、画面上から下へ移動させるときが正、その逆が負 であることに注意してください。
p_scrwnd
スクリーン座標系をウィンドウ座標系に変換
スクリーン座標系をウィンドウ座標系に変換します。 v1にx座標、y座標を代入しておきます。 描画対象となっているウィンドを基準にします。
p_wndscr
ウィンドウ座標系をスクリーン座標系に変換
ウィンドウ座標系をスクリーン座標系に変換します。 v1にx座標、y座標を代入しておきます。 描画対象となっているウィンドを基準にします。
progbox
プログレスボックスの作成
プログレスボックスを作成します。 プログレスボックスは、進捗状況を表示するのに便利です。 スタイル(comctl32.dllのバージョンが4.70以上でなければ無効です) n4の値 1 進み方がスムーズになります。 4 垂直に目盛りが進みます。
puts
コンソールに文字列を書き込む
コンソールに文字列を表示します。 (putzを使うとv1に直接文字列を使用することができます。
selget
mesbox内の選択部分の文字列を取得
mesbox n2 の選択されている部分を取得します。

文字列操作命令

charlower
WinAPIのCharLowerAを使い変数内の英字を小文字に変換する
変数内の英字を小文字に変換します。
charupper
WinAPIのCharUpperAを使い変数内の英字を大文字に変換する
変数内の英字を大文字に変換します。
from_uni
UnicodeからANSIに変換
UNICODEをANSI文字列に変換します。 この命令を呼び出した後、statにバッファに書き込まれたMultibyte文字の数が代入されます。 0ならエラーです。
getpath
パスの一部を取得
p2で指定した変数に格納されているファイルパスなどを示す文字列を p3で指定したタイプの情報に変換して、p1に指定された変数に代入します。
getstr
バッファから文字列読み出し
メモリ上のバッファの任意の場所にある内容を文字列として変数に 読み出します。文字列は、00というコードか、改行コードがある まで読み出されます。改行コードは文字列には含まれません。 また、区切りキャラクタコードを指定することができ任意の文字で 区切られた文字列を取り出すこともできます。
instr
文字列の検索をする
p2で指定した文字列型変数の中に、"string"で指定した文字列が あるかどうか調べて、p1で指定した変数にインデックスを代入 します。 指定した文字列が見つかった場合には、p1で指定された変数に インデックスが代入されます。
noteadd
指定行の追加・変更
メモリノートパッドの内容を追加・変更します。 p1に追加・変更するための文字列を指定します。p2で、対象となるインデックスを指定します。 p2パラメータを省略するか、-1を指定すると最終行が対象になります。 p3パラメータで、追加か上書きかを指定します。
notedel
行の削除
メモリノートパッドの指定したインデックスを削除します。 p1で指定したインデックスの内容は削除され、以降のインデックスが1つづつシフトします。
noteget
指定行を読み込み
メモリノートパッド内の、p1で指定したインデックスの内容をp1で指定された変数に代入します。 メモリノートパッド内の任意の行にある内容を読み出すことができます。 インデックスは0から始まるので注意してください。
noteload
対象バッファ読み込み
指定したファイルをメモリノートパッド命令のバッファに読み込みます。 通常は、テキストファイルを読み込み、メモリノートパッド命令で読み出す 対象とします。
notemax
最大行数取得
現在、対象となっているメモリノートパッド全体の行数を調べ、p1で指定した変数に代入します。 全体の行数とは、つまりメモリノートパッド内にある要素の数です。 「APPLE」「ORANGE」「GRAPE」という行がある場合には、3になります。 この場合、インデックスは0~2までになります。
notesave
対象バッファ保存
メモリノートパッド命令のバッファの内容を指定したファイルにテキスト ファイルとして保存します。 必ず最初にnotesel命令で対象となるバッファを設定する必要があるので注意してください。
notesel
対象バッファ指定
p1で指定した変数をメモリノートパッド命令のバッファに設定します。 p1で指定した変数は、強制的に文字列型に変更されます。
strlen
文字列の長さを調べる
p2で指定された文字列型変数が持っている文字列の長さをp1に代入します。 文字列が日本語の全角だった場合は、1文字でも2文字分に計算されます。
strmid
文字列の一部を取り出す
p2で指定した文字列型変数の中から、p3,p4で指定した条件で 文字を取り出し、p1で指定された変数に代入します。 p3で取り出し始めるインデックスを指定します。これは、文字列の 始まり1文字目を0として、1,2,3...と順番に増えていくものです。
to_uni
Unicodeへ変換
ANSI文字列(SJIS)をUNICODEに変換します。 この命令を呼び出した後、statにバッファに書き込まれたUnicode文字の数が代入されます。 0ならエラーです。

特殊代入命令

dup
変数のクローンを作成
dup命令は、変数名1に変数名2で指定した変数の機能をコピーします。 以降は、変数名1を変数名2とまったく同じように使うことができます。
mref
特殊なメモリを変数に割り当てる
p1で指定された変数に、p2で指定したメモリ内容を割り当てます。

画面制御命令

bgscr
ウインドゥIDを初期化
screen命令と同じく、指定したウインドゥIDを初期化して使用できるようにします。 ただしbgscr命令は、ウインドゥ枠のない特殊なポップアップウインドゥとして 表示されます。また、bgscrのウインドゥは最も優先順位の高い最前面に表示されます。
bmpsave
画面イメージセーブ
現在の画面イメージをそのままBMP形式の画像ファイルとして セーブします。"filename"で指定された名前でファイルが作成 されます。拡張子も含めてファイル名を指定する必要があります。 セーブされる画像サイズは、対象となるウインドゥが初期化された サイズになります。
boxf
矩形を塗りつぶす
画面上に、(p1,p2)と(p3,p4)を左上、右下の点として、 矩形(四角形)を塗りつぶします。 描画色は、color命令またはpalcolor命令で設定されたものになります。
buffer
ウインドゥIDを初期化
screen命令と同じく、指定したウインドゥIDを初期化して 使用できるようにします。初期化する画面サイズと、画面 モードはscreen命令と変わりませんが、buffer命令では、 メモリ上に仮想画面が作られるだけで、実際の画面には 表示されません。
chgdisp
画像解像度を変更する
現在の表示解像度を強制的に変更します。 設定する値は以下の通りです。
color
カラー設定
メッセージ表示、描画などの色を指定した値に設定します。 p1,p2,p3がそれぞれ、R,G,Bの輝度になります。 0が最も暗く、255が最も明るくなります。 color 0,0,0 は黒に、color 255,255,255 は白になります。
font
フォント設定
mesおよびprint命令などで表示するテキスト書体の設定をします。 "fontname"でフォントの名前を指定します。 フォント名は、"MS 明朝"、"MS ゴシック" などのフォント 名を直接指定してください。 フォントの大きさはドット数に比例した論理サイズで指定します。
gcopy
画面コピー
gcopy命令は、指定したウインドゥIDの画面の一部を、 現在の描画先カレントポジションにコピーします。 コピー元のウインドゥIDは、自分のウインドゥIDと同じか または、screen命令やbuffer命令で初期化されたウインドゥ IDでなければなりません。
getpal
パレット読み出し
現在の画面に設定されているパレットの色データを読みだし ます。指定したパレットコードのRGB輝度が、rval,gval,bval の変数に自動的に代入されます。
gmode
画面コピーモード設定
gcopyで使用されるモードおよび、サイズ、ブレンド率などを設定します。 それぞれのコピーモード動作は以下の通りです。 ・モード0 = 通常のコピー(bitblt) WindowsのシステムAPIを使った画像コピーを行ないます。 最も標準的なモードです。
gsel
グラフィック操作先指定
画面制御命令の描画先を指定したウインドゥIDの画面に変更します。 これ以降は、p1で指定したウインドゥIDの画面に対して、 mes命令やpicload命令などの画面描画に関する命令が実行されるようになります。 p2でオプションのスイッチが指定できます。
gzoom
変倍して画面コピー
gzoom命令は、指定したウインドゥIDの画面の一部を、 現在の描画先カレントポジションに、任意の大きさに変倍してコピーします。 コピー元のウインドゥIDは、自分のウインドゥIDと同じか または、screen命令やbuffer命令で初期化されたウインドゥ IDでなければなりません。
line
直線を描画
画面上に、(p1,p2)と(p3,p4)を結ぶ直線を描画します。 (p3,p4)を省略した場合は、カレントポジションから(p1,p2)までの 直線が描画されます。 描画色は、color命令またはpalcolor命令で設定されたものに なります。
palcolor
描画パレット設定
メッセージ表示、描画などの色を指定した値に設定します。 p1はパレットコードになります。パレットコードは、mag,bmp などの16色、256色の画像ファイル表示時に使われたパレット の何番目かを示すものです。
palcopy
別画面のパレットをコピー
p1で指定されたウインドゥIDが使用しているパレットの内容 をすべて、現在選択されている画面にコピーします。 これは、buffer命令などで作成した仮想画面に読み込んだ 256色の画像を別のウインドゥIDにコピーする時などに、 パレットの内容を合わせておくためのものです。
palette
パレット設定
現在の画面に設定されているパレットの色データを変更します。 p1のパレットコードにp2,p3,p4で指定した輝度のRGBカラーを設定します。 この命令は、パレットに値を設定しますが、すぐには画面上に反映されません。
palfade
パレットフェード
パレットの輝度を現在設定してある状態からp1で指定する 値だけ変更します。 例: palfade -10,0,15 上の例では、パレットコード0から15までのRGB輝度をすべて -10します。p2,p3を省略すると、すべてのパレットの輝度が 変更されます。
pget
1dotの点を取得
画面上の1ドットの色データを読みだします。 指定した座標のRGB輝度が、rval,gval,bvalの変数に自動的 に代入されます。
picload
画像ファイルをロード
画像ファイルをロードします。通常は、 picload "test.bmp" とするだけで、"test.bmp"で指定された画像ファイルが現在の 画面にロードされ、ウインドゥサイズが自動的に絵のサイズに 合わせられます。
pos
カレントポジション設定
メッセージ表示、オブジェクトの表示などの基本座標となる カレントポジションの座標を指定します。 Xは一番左が0に、Yは上が0になり、1ドット単位の指定になります。 パラメータの省略をすると、現在の値が使われます。
pset
1dotの点を表示
画面上に1ドットの点を描画します。 描画色は、color命令またはpalcolor命令で設定されたものになります。
redraw
再描画の設定
画面の描画モードを指定します。描画モードとは、 描画モード0 (2): mes,print,gcopy,gzoomなどの画面制御命令が実行されて も仮想画面を書き換えるだけで、実際の画面には反映され ません。
screen
ウインドゥIDを初期化
指定したウインドゥIDを初期化して使用できるようにし ます。HSPの初期状態では、ウインドゥID0の画面しか使用 されていませんが、ウインドゥID2~31までを自由に使って ウインドゥやメモリ上の仮想画面を作成することができま す。
sysfont
システムフォント選択
システム標準のフォントを選択します。 p1で、フォントの種類を指定します。これは以下の中から選びます。
width
ウインドゥサイズ設定
ウインドゥのクライアントサイズ(実際に表示される大きさ)と ウインドゥ表示位置を変更します。 クライアントサイズは、screen命令やbuffer,bgscr命令で初期化された 画面サイズより大きくすることはできません。