リファレンス 9 ドキュメント 3 サンプル 15
標準機能 266 hgimg3 190 hspcmp 21 hspda 16 hspdb 8 hspdx 44 hspext 56 hspinet 29 hspsock 12

標準機能

Version 3.0 Date 2005/03/12 Author onitama
Version 3.0 Date 2004/12/03 Author onitama
Version 3.0 Date 2004/10/12 Author onitama

目次 (19 グループ / 266 ページ)

COMオブジェクト操作命令 6
COMオブジェクト操作関数 1
HSPシステム制御命令 2
オブジェクト制御命令 11
システム変数 56
ファイル操作命令 10
プリプロセッサ命令 29
プログラム制御マクロ 13
プログラム制御命令 22
マルチメディア制御命令 4
メモリ管理命令 15
メモリ管理関数 3
基本入出力制御命令 5
基本入出力関数 30
文字列操作命令 9
文字列操作関数 6
標準定義マクロ 4
特殊代入命令 3
画面制御命令 37

COMオブジェクト操作命令

comevarg
COMイベントのパラメーターを取得
p2で指定された変数(COMオブジェクト型)のイベントサブルーチン内で、 イベントのパラメーター(引数)を取得します。 p2で指定された変数は、comevent命令により初期化されている必要があります。 取得は必ず、イベントサブルーチン内で行なう必要があります。
comevent
COMイベントの取得開始
p1で指定された変数をイベント処理を行なうためのCOMオブジェクト型として初期化します。 p2で指定された変数(COMオブジェクト型)から任意のイベントを取得して準備を行ないます。 p2で指定されたCOMオブジェクトは、すでにnewcom命令により初期化されている必要があります。
delcom
COMオブジェクト型変数の破棄
p1で指定したCOMオブジェクト型の変数のインスタンスを削除します。 p1は、newcom命令によってすでにCOMオブジェクト型が設定されている変数である必要があります。
newcom
COMオブジェクト型変数の新規作成
p1で指定した変数をCOMオブジェクト型として初期化を行ないます。 p1の変数がCOMオブジェクト型でない場合は、COMオブジェクト型として初期化されます。^ すでにCOMオブジェクト型の場合、以前のオブジェクトは破棄されます。
querycom
COMオブジェクト型変数の作成
p2で指定されたCOMオブジェクト型変数のインターフェースに対して、別なインターフェースを問い合わせ、p1で指定した変数をCOMオブジェクト型として初期化を行ないます。 p1の変数がCOMオブジェクト型でない場合は、COMオブジェクト型として初期化されます。
sarrayconv
Variant型との一括変換を行なう
Variant型との一括変換を行ないます。 p3のモードにより、変換のモードを指定することができます。 指定できるモード値は以下の通りです。 p3  内容 0 :配列変数 p2 全体から SafeArray を作成し、 p1 の Variant 型変数に格納します。

COMオブジェクト操作関数

comevdisp
COMイベントの内容を確認
p1で指定された変数(COMオブジェクト型)のイベントサブルーチン内で、 イベントのディスパッチID(DISPID)を取得します。 p1で指定された変数は、comevent命令により初期化されている必要があります。 また、取得は必ずイベントサブルーチン内で行なう必要があります。

HSPシステム制御命令

assert
デバッグウィンドウ表示
プログラムを一時的に中断してデバッグウィンドウを表示します。 p1に条件式が指定された場合には、p1の条件が正しくない場合にのみデバッグ ウィンドウを表示します。 (p1には、通過する時の条件式を書くことになるので注意してください。
logmes
デバッグメッセージ送信
デバッグウィンドウ表示時に、"message"の内容をデバッグログに記録します。 ある時点での変数の内容や、通過チェックなどに利用できます。 スクリプトエディタからデバッグウィンドウの表示モードを設定するか、 assert命令によってデバッグウィンドウを表示させておく必要があります。

オブジェクト制御命令

button
ボタン表示
カレントポジションにオブジェクトとして押しボタンを配置します。 ボタンには、"name"で指定された文字列が書かれ、マウスでボタンをクリック すると、*labelで指定した場所にプログラムの制御が移ります。 button gotoと記述した場合は、ラベルにジャンプ。
chkbox
チェックボックス表示
カレントポジションにオブジェクトとしてチェックボックスを配置します。 チェックボックスには、"strings"で指定した文字列の左側に、カーソルで ON/OFFを切り替えることのできるスイッチがついたオブジェクトです。
clrobj
オブジェクトをクリア
button命令やmesbox命令などで出したオブジェクトを消去します。 p1,p2を省略して、 clrobjだけを実行させると画面上のオブジェクトがすべて 消去されます。
combox
コンボボックス表示
カレントポジションにオブジェクトとして、コンボボックスを配置します。 コンボボックスは、複数の文字列要素の中から1つを選択させることのできる 入力オブジェクトです。 オブジェクトの大きさは、objsize命令で設定した大きさになります。
input
入力ボックス表示
カレントポジションにオブジェクトとして入力ボックスを配置します。 p2,p3 で大きさを指定して、場所はカレントポジションからになります。 p2,p3が省 略された場合は、objsizeで指定されたサイズになります。 入力ボックスは、キーボードから直接入力することのできる小さな窓です。
listbox
リストボックス表示
カレントポジションにオブジェクトとして、リストボックスを配置します。 リストボックスは、複数の文字列要素の中から1つを選択させることのできる 入力オブジェクトです。 オブジェクトの大きさは、objsize命令で設定した大きさになります。
mesbox
メッセージボックス表示
ウィンドウ上にオブジェクトとして、 メッセージボックス(メッセージ表示用 の窓)を配置します。p2,p3で大きさを指定して、場所はカレントポジションか らになります。 メッセージボックスのスタイルに設定する値(p4)は、以下の通りになります。
objmode
オブジェクトモード設定
button,input,mesbox などのオブジェクト制御命令で使用されるスタイル等を 設定するための命令です。 p1でフォント設定及び、スタイルに関するモードを指定することができます。 これにより、以降のオブジェクト配置命令実行時のスタイル設定が変わります。
objprm
オブジェクトの内容を変更
button命令やinput,mesbox命令などで画面上に配置したオブジェクトの持つ内 容やパラメータを変更します。 p1には、オブジェクトIDを指定します。オブジェクトIDは、 0から順番に画面 上に表示したオブジェクト1つ1つに割り当てられていく番号です。
objsel
オブジェクトに入力フォーカスを設定
p1で指定したオブジェクトIDに入力フォーカスを合わせます。 入力フォーカスを合わせることにより、 mesbox命令やinput命令で配置した入 力ボックスの中に入力カーソル(キャレット)を出すことができます。
objsize
オブジェクトサイズ設定
ボタンや入力ボックスなどを配置する時のオブジェクトの大きさを設定します。 p3でボタンやメッセージが置かれた後にカレントポジションが移動する最低量 を指定することができます。これにより、ボタンとメッセージを連続して置い た時に同じ大きさでスペースが空くようになります。

システム変数

cnt
repeat~loop ループのカウンター
repeat~loop ループのカウンターが代入されます。
dir_cmdline
コマンドライン文字列
実行時に渡されたコマンドライン文字列が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_cur
カレントディレクトリ(フォルダ)
現在のカレントディレクトリ(フォルダ)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_desktop
デスクトップディレクトリ(フォルダ)
デスクトップディレクトリ(フォルダ)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_exe
実行ファイルがあるディレクトリ(フォルダ)
ランタイム実行ファイルがあるディレクトリ(フォルダ)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_mydoc
マイドキュメントディレクトリ(フォルダ)
マイドキュメントディレクトリ(フォルダ)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_sys
Windowsシステムディレクトリ(フォルダ)
Windowsのシステムディレクトリ(フォルダ)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_win
Windowsディレクトリ(フォルダ)
Windowsがインストールされているディレクトリ(フォルダ)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
err
エラーコード
HSP のエラーコードです。エラーコードとメッセージの対応については、別途 マニュアルを参照してください。
ginfo_act
アクティプなウィンドウID
現在アクティブになっているウィンドウIDが代入されています。 もし、 アクティブになっているウィンドウがHSP以外の場合は-1になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_b
現在設定されているカラーコード(B)
color命令などにより指定された青の色コード(輝度)が代入されています。 色コードは、0~255までの整数値になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_cx
カレントポジションのX座標
pos命令により設定されたカレントポジションのX座標が代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_cy
カレントポジションのY座標
pos命令により設定されたカレントポジションのY座標が代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_dispx
デスクトップ全体のXサイズ
デスクトップ全体のサイズ(画面解像度)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_dispy
デスクトップ全体のYサイズ
デスクトップ全体のサイズ(画面解像度)が代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_g
現在設定されているカラーコード(G)
color命令などにより指定された緑の色コード(輝度)が代入されています。 色コードは、0~255までの整数値になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_intid
メッセージ割り込み時のウィンドウID
oncmd命令により設定されたメッセージ割り込み時のウィンドウIDが代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_mesx
メッセージの出力Xサイズ
最後にmes, print命令により出力されたメッセージのXサイズが代入されています。 サイズは、 X座標にどれだけのドット数で描画されたかを示します。 画面上の絶対座標ではないので注意してください。また、複数行ある 文字列を出力した場合は、最後の行にあたるサイズが取得されます。
ginfo_mesy
メッセージの出力Yサイズ
最後にmes, print命令により出力されたメッセージのYサイズが代入されています。 サイズは、 Y座標にどれだけのドット数で描画されたかを示します。 画面上の絶対座標ではないので注意してください。また、複数行ある 文字列を出力した場合は、最後の行にあたるサイズが取得されます。
ginfo_mx
スクリーン上のマウスカーソルX座標
スクリーン上のマウスカーソルX座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、 デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_my
スクリーン上のマウスカーソルY座標
スクリーン上のマウスカーソルY座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、 デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_paluse
デスクトップのカラーモード
現在のデスクトップカラーモード(色モード)が代入されています。 フルカラーモードの場合は0が、パレットモードの場合は1が返されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_r
現在設定されているカラーコード(R)
color命令などにより指定された赤の色コード(輝度)が代入されています。 色コードは、0~255までの整数値になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sel
操作先ウィンドウID
gsel命令で指定した画面の操作先ウィンドウIDが代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sizex
ウィンドウ全体のXサイズ
現在の操作先ウィンドウの横幅が代入されています。 これは、ウィンドウの枠やタイトルバーなども含めたサイズになります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sizey
ウィンドウ全体のYサイズ
現在の操作先ウィンドウの縦幅が代入されています。 これは、ウィンドウの枠やタイトルバーなども含めたサイズになります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_vx
ウィンドウのスクロールX座標
現在の操作先ウィンドウのスクロールX座標が代入されています。 これは、初期化サイズよりもウィンドウサイズが小さくなっている場合に、 左上に表示されている座標がどれだけスクロールされているかを示す値です。 スクロールさせていない通常の状態では、(0,0)になります。
ginfo_vy
ウィンドウのスクロールY座標
現在の操作先ウィンドウのスクロールY座標が代入されています。 これは、初期化サイズよりもウィンドウサイズが小さくなっている場合に、 左上に表示されている座標がどれだけスクロールされているかを示す値です。 スクロールさせていない通常の状態では、(0,0)になります。
ginfo_winx
画面の初期化Xサイズ
現在の操作先ウィンドウの初期化Xサイズが代入されています。 最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_winy
画面の初期化Yサイズ
現在の操作先ウィンドウの初期化Yサイズが代入されています。 最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wx1
ウィンドウの左上X座標
スクリーン座標系で現在のウィンドウの左上X座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、 デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wx2
ウィンドウの右下X座標
スクリーン座標系で現在のウィンドウの右下X座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、 デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wy1
ウィンドウの左上Y座標
スクリーン座標系で現在のウィンドウの左上Y座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、 デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wy2
ウィンドウの右下Y座標
スクリーン座標系で現在のウィンドウの右下Y座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、 デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
hdc
現在のデバイスコンテキスト
現在選択されているウィンドウのデバイスコンテキスト(ポインタ)が代入され ます。 主にDLL等の外部呼出しで必要な場合に参照されます。
hinstance
現在のインスタンスハンドル
現在実行中アプリケーションのインスタンスハンドル(ポインタ)が代入されま す。 主にDLL等の外部呼出しで必要な場合に参照されます。
hspstat
HSP ランタイムの情報を取得する
HSP ランタイムの情報が代入されます。以下の情報がすべて合計された値にな ります。
hspver
HSP のバージョン番号
HSP のバージョン番号が代入されます。バージョンコード + マイナーバージ ョンコードの値になります。
hwnd
現在のウィンドウハンドル
現在選択されているウィンドウのハンドル(ポインタ)が代入されます。 主にDLL等の外部呼出しで必要な場合に参照されます。
iparam
割り込み要因を示す値
割り込み要因を示す値が代入されます。
looplev
repeat~loop のネストレベル
repeat~loop のネストレベルが代入されます。
lparam
割り込み時の lParam
割り込み時に保存される Windows のシステム値 (lParam) が代入されます。
mousew
マウスカーソルのホイール値
ホイール付きマウスの移動量が代入されます。
mousex
マウスカーソルの X 座標
マウスカーソルの X 座標が代入されます。
mousey
マウスカーソルの Y 座標
マウスカーソルの Y 座標が代入されます。
msgothic
MSゴシックフォント
MSゴシックを示すフォントを示すキーワードです。 font命令で指定するフォント名として使用することができます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
msmincho
MS明朝フォント
MS明朝を示すフォントを示すキーワードです。 font命令で指定するフォント名として使用することができます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
notemax
メモリノートパッドの行数
現在選択されているメモリノートパッド全体の行数を示すシステム変数として 使用することができます。 noteinfo関数でも同様の情報を取得することが可能です。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
notesize
メモリノートパッドの文字数
現在選択されているメモリノートパッド全体の文字数(byte数)を示す システム変数として使用することができます。 noteinfo関数でも同様の情報を取得することが可能です。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
refdval
色々な命令のステータス実数値
色々な命令を実行した結果の実数値が代入されます。
refstr
色々な命令のステータス文字列
色々な命令を実行した結果の文字列が代入されます。
stat
色々な命令のステータス
色々な命令を実行した結果の値(ステータス)が代入されます。
strsize
読み出しバイト数
getstr、exist、bload命令などで読み出したバイト数が代入されます。
sublev
サブルーチンのネストレベル
サブルーチン (モジュール) のネストレベルが代入されます。
thismod
現在の有効なモジュール変数
モジュール変数処理のためのユーザー定義命令・関数内で、 渡されたモジュール変数自身を示す名称として使用することができます。 #modfuncで定義されたルーチンから、別な命令・関数を呼び出す場合に使用す ることができます。
wparam
割り込み時の wParam
割り込み時に保存される Windows のシステム値 (wParam) が代入されます。

ファイル操作命令

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

プリプロセッサ命令

#addition
別ファイルを結合
インクルードするファイルを指定します。 ここで指定されたファイルは、もとのファイルに結合してコンパイルされます。 #include命令と同じ動作ですが、#additionはファイルが存在しない場合でも、 エラーとして停止せずに続行されます。 追加の定義ファイルなどを結合する場合に使用します。
#cfunc
外部DLL呼び出し関数登録
外部DLLを呼び出すための新しい関数を登録します。 先に#uselib命令により外部DLL名を指定しておく必要があります。 新規名称、関数名、タイプをスペースで区切って書きます。
#cmd
拡張キーワードの登録
HSP拡張プラグインのためにキーワードの登録を行ないます。 あらかじめ、 #regcmd命令によってプラグイン初期化関数の登録を行なっておく必要があります。
#comfunc
外部COM呼び出し命令登録
外部コンポーネント(COM)を呼び出すための新しい命令を登録します。 #comfuncは、 #usecom命令によって指定されたインターフェースのメソッドを 命令として呼び出すための登録を行ないます。
#const
マクロ名の定数定義
指定されたマクロ名に置換え文字列を設定します。 #defineと同様ですが、 #constは定数(数値)の置き換えを行なう場合にあらか じめ計算を行なった結果を置き換えます。
#defcfunc
新規関数を登録する
ユーザーによる新規関数を登録します。 p1に新規関数の名前を、p2以降に呼び出しパラメータタイプを指定します。 #defcfunc命令で定義した位置より以降は、 指定された名前を関数として使用 することが可能です。
#deffunc
新規命令を登録する
ユーザーによる新規命令を登録します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 #deffunc命令で定義した位置より以降は、指定された名前を命令語として 使用することが可能です。 新規命令は、#deffuncで指定された行以降が実行される内容になります。
#define
新規マクロを登録する
マクロ名で指定されたキーワードを指定された定義に置き換えられるようにプ リプロセッサに登録をします。 #defineマクロは、 あくまで個人がスクリプトを書きやすくカスタマイズした い 場合に使うもので、初心者向きではありません。
#else
コンパイル制御を反転
#if、#ifdef、#ifndefなどのコンパイル制御区間内で、ON/OFFを反転します。 コンパイル制御についての詳細は、 #if命令のリファレンスを参照してくださ い。
#endif
コンパイル制御ブロック終了
#if、#ifdef、#ifndefなどのコンパイル制御区間を終了します。 コンパイル制御についての詳細は、 #if命令のリファレンスを参照してくださ い。
#enum
マクロ名の定数を列挙
指定されたマクロ名に連続した値を割り当てます。 #const命令と同様に、定数を示すマクロ名を定義することができます。
#epack
PACKFILE追加ファイル指定
実行ファイル自動作成(ctrl+F9)で、 packfileに追加されるファイルを指定し ます。指定されたファイルは、実行ファイル作成時にリソースとして一緒にパ ックされます。#epackは、指定ファイルを暗号化してパックします。 暗号化を行なう必要がない場合は#packをお使い下さい。
#func
外部DLL呼び出し命令登録
外部DLLを呼び出すための新しい命令を登録します。 先に#uselib命令により外部DLL名を指定しておく必要があります。 新規名称、関数名、タイプをスペースで区切って書きます。
#global
モジュールの終了
モジュール区間を終了し、以降を通常のプログラム領域に戻します。 モジュールについての詳細は、#module命令を参照してください。
#if
数値からコンパイル制御
コンパイルのON/OFFを指定します。 #ifは指定した数値が 0ならば以降のコンパイル出力をOFFにしてコンパイル結 果を無視します(プログラムとして実行されません)。 数値が0以外の場合は、出力がONとなります。 このコンパイル制御は、#endifが出るまでの区間を対象にします。
#ifdef
マクロ定義からコンパイル制御
コンパイルのON/OFFを指定します。 #ifdefは指定したマクロが定義されていなければ以降のコンパイル出力をOFF にしてコンパイル結果を無視します。定義されている場合は、出力がONとなり ます。このコンパイル制御は、#endifが出るまでの区間を対象にします。
#ifndef
マクロ定義からコンパイル制御
コンパイルのON/OFFを指定します。 #ifndefは指定したマクロが定義されていれば以降のコンパイル出力をOFFにし てコンパイル結果を無視します。定義されていない場合は、出力がONとなりま す。このコンパイル制御は、#endifが出るまでの区間を対象にします。
#include
別ファイルを結合
インクルードするファイルを指定します。 ここで指定されたファイルは、もとのファイルに結合してコンパイルされます。
#modfunc
新規命令を割り当てる
モジュール変数を処理するための新規命令を登録します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 命令を定義した位置より以降は、指定された名前を命令語として使用すること が可能です。
#modinit
モジュール初期化処理の登録
モジュール変数を初期化するための処理(コンストラクタ)を登録します。 オプションとして呼び出しパラメータタイプ、エイリアス名を指定することが できます。 #modinitで定義した区間は、newmod命令実行時に自動的に呼び出されるように なります。
#modterm
モジュール解放処理の登録
モジュール変数を破棄するための処理(デストラクタ)を登録します。 オプションとして呼び出しパラメータタイプ、エイリアス名を指定することが できます。 #modtermで定義した区間は、delmod命令実行時に自動的に呼び出されるように なります。
#module
モジュールの開始
#module以降の区間をモジュールとして別な空間に割り当てます。 モジュール内の変数やラベルは、モジュール外のものからは独立したものにな ります。
#pack
PACKFILE追加ファイル指定
実行ファイル自動作成(ctrl+F9)で、 packfileに追加されるファイルを指定し ます。指定されたファイルは、実行ファイル作成時にリソースとして一緒にパ ックされます。#packは、通常の形式でパックします。 暗号化してパックした い場合は#epackをお使い下さい。
#packopt
自動作成オプション指定
実行ファイル自動作成の動作を指定します。 キーワード名、の後スペース又は TAB を入れてパラメーター(文字列の場合は 「"strings"」のように指定)を記述して下さい。 #packoptで指定できるキーワードは以下の通りです。
#regcmd
拡張プラグインの登録
HSP拡張プラグインの登録を行ないます。 初期化関数名は、 DLLからエクスポートされた名前を正確に指定しなければな りません。VC++からエクスポートした場合には、先頭に「_」が、最後に「@4」 が付加されるので、それを含めた名前を記述します。
#runtime
ランタイムファイルの設定
スクリプトの実行に使用されるランタイムファイル名を設定します。 (ランタイムファイル名は、 拡張子の除いたファイルの名前部分を指定しま す。) スクリプトエディタからの実行時や実行ファイル作成時のランタイムを設定す る場合に使用します。
#undef
マクロ名の取り消し
すでに登録されているマクロ名を取り消します。 登録されていないマクロ名に対して指定してもエラーにはならず無視されます。
#usecom
外部COMの指定
外部コンポーネント(COM)定義を行ないます。 指定したインターフェース名に、クラスIID、インターフェースIIDを割り当て て使用可能な状態にします。 IIDは、レジストリと同様の文字列({~})で指定することができます。 また、"クラスIID"は省略することができます。
#uselib
外部DLLの指定
HSPから呼び出す外部DLLのファイル名を指定します。 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命令が実行されると、そのアプリケーションは終了します。 アプリケーションの終了コードをパラメーターp1で指定することができます。 p1を省略した場合は、0がアプリケーション終了コードとなります。
exec
Windowsのファイルを実行する
execは "filename" で指定したファイル名のアプリケーションを実行します。 拡張子がEXEの場合は、拡張子を省略することができます。 p1で実行時のモードを選ぶことができます。p1を省略した場合は0になります。
exgoto
指定ラベルに条件ジャンプ
valで指定された変数に代入されている値と、 p2の比較値により指定したラベ ルに条件でジャンプします。
foreach
変数の要素数だけ繰り返す
配列変数に格納されている要素の数だけ繰り返しを行ないます。 foreachは、repeat命令と同様にループ開始場所に記述し、 ループの終了場所 にloop命令を記述します。
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
クリック割り込み実行指定
マウスのボタンを押した時に、自動的にジャンプする場所を指定します。 onclickの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記 述します。gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブ ルーチンジャンプを行ないます。
oncmd
Windowsメッセージ割り込み実行指定
指定されたウィンドウメッセージが送られた時に、自動的にジャンプする場所 を指定します。 oncmdの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記述 します。 gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブルーチンジ ャンプを行ないます。
onerror
エラー発生時にジャンプ
スクリプトが原因で HSP内部でエラーが発生した時に、自動的にジャンプする 場所を指定します。 onerrorの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記 述します。gotoの場合には、単純なプログラムジャンプ。
onexit
終了時にジャンプ
クローズボックス(ウィンドウ右上の終了ボタン)を押した時に、自動的にジャ ンプする場所を指定します。 onexitの後に続けて、 gotoまたはgosubキーワードを指定してからラベルを記 述します。 gotoの場合には、単純なプログラムジャンプ。
onkey
キー割り込み実行指定
キーボードを押した時に、自動的にジャンプする場所を指定します。 onkeyの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記述 します。gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブル ーチンジャンプを行ないます。
repeat
ループの始まりの場所を示す
repeat~loopの間をくり返し実行します。 repeat命令は、くり返しの開始地点を示します。 loop命令は最後に通過したrepeat命令まで戻ります。
return
サブルーチンから復帰
gosub命令やユーザー定義命令などで呼び出しされたサブルーチンを終了しま す。return命令により、スタックを戻し呼び出し元に復帰します。 p1を指定することにより、サブルーチンから値をシステム変数に反映させるこ とができます。
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の解説書をお読みください。
mmload
サウンドファイル読み込み
メディアデータのファイルを登録します。 読み込むことができる形式は以下の通りです。 WAV形式 : 拡張子 WAV : Windows標準のPCM音声データ。
mmplay
サウンド再生
mmload命令によって読み込まれたメディアを再生します。 p1でバッファの番号を指定することで、mmload命令によって読み込まれた複数 のメディアから、どれを再生するかを選びます。 mmplay命令は、 通常サウンドの再生がスタートするとともにHSPは次の命令へ と進みます。
mmstop
サウンド停止
mmplay命令によるメディア再生を停止します。

メモリ管理命令

alloc
バッファを確保
メモリ上にバッファを作成して変数に割り当てます。 割り当てられた変数は、文字列型となります。 この命令は過去のHSP命令との互換を取るために用意されています。 通常は、sdim命令を使用することを推奨します。 ※この命令は、マクロとしてhspdef.as内で定義されています。
comres
メソッド返値代入変数を設定する
p1で指定した変数を、メソッド返値代入変数として設定します。 メソッド返値代入変数は、COMオブジェクト型変数を使用して COMオートメーション(IDispatch)のメソッド呼び出しが行なわれた際に、 結果が代入される対象となります。
ddim
実数型配列変数を作成
実数型の配列変数を作成します。 パラメーターは、dim命令と同様に要素の最大数を指定します。 例 : ddim a,100 ; 変数aはa(0)~a(99)までの実数型配列を確保します dim命令と同様に多次元配列を確保することが可能です。
delmod
モジュール型変数の要素削除
p1で指定したモジュール型の変数の要素を削除します。 p1は、すでにモジュール型として設定されている変数である必要があります。
dim
配列変数を作成
任意の要素を持つ配列変数を作成します。 例: dim a,20 上の例では、変数aの要素を20個、つまり「a(0)」~「a(19)」までをあらか じめ確保します。 パラメータを増やすことで多次元配列を作成することも可能です。
dimtype
指定タイプの配列変数を作成
任意の要素を持つ配列変数を作成します。 dim命令と同様の動作ですが、dimtypeは変数の型を指定することができます。 p2には、変数型を示す型タイプ値を指定する必要があります。 型タイプ値は、vartype関数で型名文字列から取得することが可能です。
lpoke
バッファに4byte書き込み
変数に保存されたデータメモリ上の任意の場所にある 4バイトの内容を書き換 えます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所にp3の値 を書き込みます。値は0~$ffffffffまでの4バイト(32bit)値になります。
memcpy
メモリブロックのコピー
p1で指定された変数に割り当てられているメモリ領域に、 p2で指定された変数に割り当てられているメモリの内容をコピーします。 コピーするサイズ(1byte単位)は、p3で指定します。 大きな領域を変数に割り当てている場合などに高速なメモリコピーを 行なうことができます。
memexpand
メモリブロックの再確保
p1で指定された変数が持つメモリ領域の再確保を行ないます。 代入時などのメモリ領域確保はシステムが自動的に行なっていますが、 明示的にサイズを変更する場合に使用します。 再確保を行なった場合でも、以前までの内容は保持されます。 p2で、再確保サイズを指定します。
memset
メモリブロックのクリア
1byteの固定値でメモリブロックを埋めます。 p1で指定された変数に割り当てられているメモリ領域に、p2で指定された値を 、p3のサイズだけ書き込みます。大きな領域に同じ値を書き込みたい時に有効 です。p4で、メモリ開始位置を1byte単位で調整することができます。
newmod
モジュール型変数の作成
p1で指定した変数をモジュール型として要素の追加を行ないます。 p1の変数がモジュール型でない場合は、モジュール型として初期化されます。 すでにモジュール型の場合は、配列変数として新しい要素を追加していきます。
poke
バッファに1byte書き込み
変数に保存されたデータメモリ上の任意の場所にある 1バイトの内容を書き換 えます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所にp3の値 を書き込みます。値は0~255までの1バイト(8bit)値になります。
sdim
文字列型配列変数を作成
文字列型の配列変数を作成します。 dim命令との違いは、 p2のパラメータは 「文字列のデフォルト文字数」、p3のパラメータ以降に実際の配列要素の最大 数を入れるところです。
setmod
モジュール型変数の再設定
p1で指定したモジュール型の変数の再初期化を行ないます。 p1は、すでにモジュール型として設定されている変数である必要があります。
wpoke
バッファに2byte書き込み
変数に保存されたデータメモリ上の任意の場所にある 2バイトの内容を書き換 えます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所にp3の値 を書き込みます。値は0~65535までの2バイト(16bit)値になります。

メモリ管理関数

lpeek
バッファから4byte読み出し
変数に保存されたデータメモリ上の任意の場所にある4バイト(32bit)の内容を 数値として返します。 関数の戻り値は、0~$ffffffffまでの整数値になります。
peek
バッファから1byte読み出し
変数に保存されたデータメモリ上の任意の場所にある1バイト(8bit)の内容を 数値として返します。 関数の戻り値は、0~255までの整数値になります。
wpeek
バッファから2byte読み出し
変数に保存されたデータメモリ上の任意の場所にある2バイト(16bit)の内容を 数値として返します。 関数の戻り値は、0~65535までの整数値になります。

基本入出力制御命令

getkey
キー入力チェック
キーボード及びマウスボタンの状態をチェックして変数に代入します。指定し たボタンが押されていれば、1を代入し、押されていなければ0が代入されます 。キーコードで指定する値の詳細は、以下の通りです。
mcall
メソッドの呼び出し
p1で指定された変数の型に応じてメソッドを呼び出します。 p1の変数にCOMオブジェクト型を指定することで、COMオートメーションのメソ ッドを呼び出すことが可能です。 p2でメソッド名(文字列)または、ディスパッチID(DISPID)を指定して、p3以降 に引数を指定します。
mouse
マウスカーソル座標設定
マウスカーソルをp1,p2で指定した座標に変更します。 指定する座標は、 ウィンドウ内の座標ではなくディスプレイでの座標(X=0~ ginfo_dispx/Y=0~ginfo_dispy)を指定します。
randomize
乱数発生の初期化
rnd関数で発生させる乱数のパターンを初期化します。 p1に同じ値を指定して初期化された乱数は、常に同じパターンで乱数を発生さ せられます。p1を省略した場合は、 Windowsのタイマから得られた不定な値を 使って初期化します。
stick
キー入力情報取得
よく使われるキーボード及びマウスボタンの状態をまとめてチェックして変数 に代入します。 stick命令が実行されると以下のような複数のボタン情報が1つの数値として、 p1で指定した変数に代入されます。

基本入出力関数

abs
整数の絶対値を返す
p1の絶対値を整数で返します。 実数の絶対値が必要な場合は、absf関数を使用してください。
absf
実数の絶対値を返す
p1の絶対値を実数で返します。 整数の絶対値が必要な場合は、abs関数を使用してください。
atan
アークタンジェント値を返す
p1をY、p2をXの値として、 Y/Xの角度(アークタンジェント値)を実数のラジア ン単位(2πが360度)で返します。 p2を省略した場合は1.0が使用されます。また、p2が0の場合は0.5π(90度)が返されます。
callfunc
外部関数の呼び出し
p2で指定されているアドレスをネイティブな関数として呼び出します。 呼び出しの引数として、p1で指定された数値型配列変数に格納されている値を 使用します。p3でパラメーター数を指定することができます。
cos
コサイン値を返す
p1のコサイン(余弦)値を実数で返します。 p1で指定する単位はラジアン(2πが360度)になります。
dirinfo
ディレクトリ情報の取得
p1で指定したタイプのディレクトリ名を返します。 取得するタイプは以下の通りです。
double
実数値に変換
p1で指定された値を実数にしたものを返します。 値が文字列の場合は、数値文字列の場合はその数値に、 それ以外は0になりま す。
expf
指数を返す
p1の指数(exp)値を、実数で返します。 オーバーフローした場合は無限(INF)を返し、アンダーフローした場合は0を返 します。
gettime
時間・日付を取得する
p1で指定したタイプの日付・時刻情報を返します。 取得するタイプは以下の通りです。
ginfo
ウィンドウ情報の取得
p1で指定したタイプのウィンドウ関連情報値を返します。 取得できるタイプは以下の通りです。
int
整数値に変換
p1で指定された値を整数にしたものを返します。 値が実数の場合は、小数点以下が切り捨てられます。 値が文字列の場合は、数値文字列の場合はその数値に、 それ以外は0になりま す。
length
配列の要素数を返す(1次元)
p1で指定された変数が持つ配列要素数(1次元)を返します。 配列要素数が5だった場合は、p1(0)~p1(4)が存在することになります。
length2
配列の要素数を返す(2次元)
p1で指定された変数が持つ配列要素数(2次元)を返します。 配列要素数が5だった場合は、p1(0,0)~p1(?,4)が存在することになります。 配列の次元が存在しない場合は、0が返ります。
length3
配列の要素数を返す(3次元)
p1で指定された変数が持つ配列要素数(2次元)を返します。 配列要素数が5だった場合は、p1(0,0,0)~p1(?,?,4)が存在することになりま す。配列の次元が存在しない場合は、0が返ります。
length4
配列の要素数を返す(4次元)
p1で指定された変数が持つ配列要素数(4次元)を返します。 配列要素数が5だった場合は、p1(0,0,0,0)~p1(?,?,?,4)が存在することにな ります。配列の次元が存在しない場合は、0が返ります。
libptr
外部呼出しコマンドの情報アドレスを得る
p1に指定したコマンドの情報アドレスを取得して整数値として返します。 外部DLL呼び出しコマンドや関数をパラメーターとして指定することで、 コマンドに関する情報が格納されているSTRUCTDAT構造体のアドレスを 取得することができます。
limit
一定範囲内の整数を返す
p1に指定した値を、p2~p3の範囲内に収まる整数に変換したものを返します。 p1の値がp2よりも小さい場合は、p2の値が返され、p1の値がp3よりも大きい場 合にはp3の値が返されます。 これにより、limit関数が返す値は、必ずp2~p3の範囲内となります。
limitf
一定範囲内の実数を返す
p1に指定した値を、p2~p3の範囲内に収まる実数に変換したものを返します。 p1の値がp2よりも小さい場合は、p2の値が返され、p1の値がp3よりも大きい場 合にはp3の値が返されます。 これにより、limitf関数が返す値は、必ずp2~p3の範囲内となります。
logf
対数を返す
p1の対数(log)値を、実数で返します。 p1に0を指定した場合は無限大(INF)を返します。
objinfo
ウィンドウオブジェクト情報の取得
現在アクティブなウィンドウに配置されている、特定のウィンドウオブジェク トに関連する情報値を返します。 p1にウィンドウオブジェクトID、p2に取得タイプを指定することで、該当する 情報データが返されます。 取得できるタイプは以下の通りです。
rnd
乱数を発生
0から(p1-1)の範囲で整数の乱数値を発生させます。 p1の値は範囲に含まれません。たとえば、 例 : a=rnd(10) は、変数aに、0~9までの乱数を代入します。 rnd関数は、プログラム起動してからは一定のパターンで乱数を発生させます。
sin
サイン値を返す
p1のサイン(正弦)値を実数で返します。 p1で指定する単位はラジアン(2πが360度)になります。
sqrt
ルート値を返す
p1のルート(平方根)値を、実数で返します。 p1にマイナス値を指定することはできません。
str
文字列に変換
p1で指定された値を文字列にしたものを返します。
strlen
文字列の長さを調べる
p1で指定された文字列または、文字列型変数が持っている文字列の長さを返し ます。 文字列が日本語の全角だった場合は、1文字でも2文字分に計算されます。
sysinfo
システム情報の取得
p1で指定したタイプのシステム情報値を返します。 取得できるタイプは以下の通りです。
tan
タンジェント値を返す
p1のタンジェント(正接)値を実数で返します。 p1で指定する単位はラジアン(2πが360度)になります。
varptr
変数データのポインタを返す
p1で指定された変数が格納しているデータがあるメモリアドレスを返します。 p1に外部拡張命令(#funcで定義されているDLL呼び出し用の命令)を指定した場 合には、実際に実行される外部関数のアドレスを返します。
vartype
変数の型を返す
p1で指定された変数が格納している値の型を調べて返します。 返される値は、型を示す整数値となります。型の値は、以下の通りです。 2 : 文字列型 3 : 実数型 4 : 整数型 5 : モジュール型 プラグイン等で型が拡張されている場合は、これ以外の値が返されます。
varuse
変数の使用状況を返す
p1に指定した変数の使用状況を返します。 varuseは、モジュール型やCOMオブジェクト型の変数など、 実態を持たない状 況が発生する場合にのみ有効です。 指定された変数が有効であれば1を、そうでなければ0を返します。 モジュール型変数であれば、初期化済みかどうかを調べることができます。

文字列操作命令

cnvstow
通常文字列をunicodeに変換
"文字列"で指定されたデータをunicode文字列に変換して変数バッファに保存 します。 unicodeデータを扱う場合や、外部DLL、 COMオブジェクトへのデータ変換など で使用することができます。
getstr
バッファから文字列読み出し
メモリ上のバッファの任意の場所にある内容を文字列として変数に読み出しま す。文字列は、00というコードか、改行コードがあるまで読み出されます。改 行コードは文字列には含まれません。 また、区切りキャラクタコードを指定することができ任意の文字で区切られた 文字列を取り出すこともできます。
noteadd
指定行の追加・変更
メモリノートパッドの内容を追加・変更します。 p1に追加・変更するための文字列を指定します。p2で、対象となるインデック スを指定します。 p2パラメータを省略するか、-1を指定すると最終行が対象になります。 p3パラメータで、追加か上書きかを指定します。
notedel
行の削除
メモリノートパッドの指定したインデックスを削除します。 p1で指定したインデックスの内容は削除され、以降のインデックスが1つづつ シフトします。
noteget
指定行を読み込み
メモリノートパッド内の、p2で指定したインデックスの内容をp1で指定された 変数に代入します。メモリノートパッド内の任意の行にある内容を読み出すこ とができます。 インデックスは0から始まるので注意してください。
noteload
対象バッファ読み込み
指定したファイルをメモリノートパッド命令のバッファに読み込みます。 通常は、テキストファイルを読み込み、メモリノートパッド命令で読み出す対 象とします。
notesave
対象バッファ保存
メモリノートパッド命令のバッファの内容を指定したファイルにテキスト ファイルとして保存します。 必ず最初にnotesel命令で対象となるバッファを設定する必要があるので注意 してください。 notesave命令は、指定バッファに含まれる文字列の長さで保存します。
notesel
対象バッファ指定
p1で指定した変数をメモリノートパッド命令のバッファに設定します。 p1で指定した変数は、強制的に文字列型に変更されます。
noteunsel
対象バッファの復帰
noteunsel命令は、notesel命令で対象となるバッファを設定する前に設定され ていたバッファ設定に戻します。

文字列操作関数

cnvwtos
unicodeを通常文字列に変換
変数に保存されたデータをunicodeとして読み取り、 通常の文字列に変換した ものを返します。 unicodeデータを扱う場合や、外部DLL、 COMオブジェクトとのデータ変換など で使用することができます。
getpath
パスの一部を取得
p1で指定したファイルパスを示す文字列をp2で指定したタイプの情報に変換し たものを文字列として返します。
instr
文字列の検索をする
p1で指定した文字列型変数の中に、"string"で指定した文字列があるかどうか 調べて、インデックスを返します。 指定した文字列が見つかった場合には、インデックス値が返されます。
noteinfo
メモリノートパッド情報取得
noteinfo関数は、現在対象となっているメモリノートパッドについての情報を 取得します。 p1で情報取得モードを指定します。また、それぞれのモードに対応したマクロ が定義されています。
strf
書式付き文字列に変換
整数または実数値を適切な書式で文字列に変換した文字列を返します。 "format"で、書式指定文字列を指定します。 書式指定文字列は、Cランタイムライブラリがサポートしているsprintfの書式 をそのまま流用することができます。
strmid
文字列の一部を取り出す
p1で指定した文字列型変数の中から、 p2,p3で指定した条件で文字を取り出し たものを返します。 p2で取り出し始めるインデックスを指定します。これは、文字列の始まり1文 字目を0として、1,2,3...と順番に増えていくものです。 1から始まりではないので注意してください。

標準定義マクロ

and
論理積(演算子)
論理積を示す演算子「&」と同様に使用することができるマクロです。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
not
否定(演算子)
否定を示す演算子「!」と同様に使用することができるマクロです。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
or
論理和(演算子)
論理和を示す演算子「|」と同様に使用することができるマクロです。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
xor
排他的論理和(演算子)
排他的論理和を示す演算子「^」と同様に使用することができるマクロです。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。

特殊代入命令

dup
クローン変数を作成
クローン元の変数が持つメモリを指している変数を作成します。 クローン変数は、クローン元のメモリ情報を参照するための変数として機能す るようになります。 クローン元の型が変更されたり、配列の拡張、または文字列バッファの拡張が 行なわれた場合には、クローンとしての動作は行なわれなくなります。
dupptr
ポインタからクローン変数を作成
指定したアドレスポインタを指している変数を作成します。 クローン変数は、メモリ上の情報を参照するための数値型配列変数として機能 するようになります。 p3で作成されるクローン変数の型を指定することができます。 p3の値は、vartype関数で取得される型を示す値と同じです。
mref
特殊なメモリを変数に割り当てる
p1で指定された変数に、p2で指定したメモリ内容を割り当てます。

画面制御命令

axobj
ActiveXコントロールの配置
"IID"で指定されたクラスIDまたは、プログラムID(ProgID)を持つActiveXコン トロール(OLEコントロール)をウィンドウオブジェクトとして配置します。 p2,p3で配置するX,Yサイズを指定します。
bgscr
ウィンドウIDを初期化
ウィンドウIDを初期化して枠のないウィンドウを作成します。 このウィンドウは、スクリーンセーバー作成などの特殊な用途で使用されます。 p4の初期化する画面モードは、以下から選ぶことができます。
bmpsave
画面イメージセーブ
現在の画面イメージをそのままBMP形式の画像ファイルとしてセーブします。 "filename"で指定された名前でファイルが作成されます。拡張子も含めてファ イル名を指定する必要があります。 セーブされる画像サイズは、対象となるウィンドウが初期化されたサイズにな ります。
boxf
矩形を塗りつぶす
画面上に、 (p1,p2)と(p3,p4) を左上、右下の点として、現在の描画色で矩形 (四角形)を塗りつぶします。
buffer
ウィンドウIDを初期化
screen命令と同じく、指定したウィンドウIDを初期化して使用できるようにし ます。初期化する画面サイズと、画面モードはscreen命令と変わりませんが、 buffer命令では、メモリ上に仮想画面が作られるだけで、実際の画面には表示 されません。
chgdisp
画像解像度を変更する
現在の表示解像度を強制的に変更します。 (p2,p3)でX,Y解像度を設定し、p1で変更モードを設定します。 モードは、1がフルカラーモード(32bit)、 2がパレットモード(8bit)となりま す。変更モードが0の場合は、最初の状態(変更前)に復帰します。
circle
円を描画する
画面上に、(p1,p2)と(p3,p4)を左上、右下の点として、矩形(四角形)に収まる 大きさの円を描画します。 描画色は、color命令等で設定されたものになります。 p5に0が指定されている場合は、輪郭だけを線で描画します。
cls
画面クリア
ウィンドウ内の情報をすべてクリアします。 p1でクリアする5種類の色を指定することができます。
color
カラー設定
メッセージ表示、描画などの色を指定した値に設定します。 p1,p2,p3がそれぞれ、R,G,Bの輝度になります。 0が最も暗く、255が最も明るくなります。 color 0,0,0 は黒に、color 255,255,255 は白になります。
dialog
ダイアログを開く
Windowsの標準的な各種ダイアログボックスを画面に表示します。 dialog命令で出したダイアログは、 HSPのウィンドウとは別にポップアップし て現われます。 ユーザーの操作によりダイアログを閉じるまでは、 HSPスクリプトの続きは実 行されません。
font
フォント設定
mesおよびprint命令などで表示するテキスト書体の設定をします。 "fontname"でフォントの名前を指定します。 フォント名は、"MS 明朝"、"MS ゴシック"などのフォント名を直接指定し てください。 フォントの大きさはドット数に比例した論理サイズで指定します。
gcopy
画面コピー
gcopy命令は、 指定したウィンドウIDの画面の一部を、現在の描画先カレント ポジションにコピーします。 コピー元のウィンドウIDは、自分のウィンドウIDと同じかまたは、screen命令 やbuffer命令で初期化されたウィンドウIDでなければなりません。
gmode
画面コピーモード設定
gcopyで使用されるモードおよび、サイズ、ブレンド率などを設定します。 それぞれのコピーモード動作は以下の通りです。 ・モード0 = 通常のコピー WindowsのシステムAPI(BitBlt関数)を使った画像コピーを行ないます。 最も標準的なモードです。
grect
回転する矩形で塗りつぶす
(p1,p2)で指定した座標を中心として、 (p4,p5)で指定したサイズの矩形(長方 形)を現在設定されている色で描画します。 p3で回転角度を実数で指定することができます。 角度の単位は、ラジアン(0から始まって、2πで一周)となります。
groll
ウィンドウの描画基点を設定
ウィンドウに描画する基点座標を設定します。 基点座標は、描画内容をスクロール可能な(初期化サイズよりも表示サイズが 小さい)ウィンドウにおいて、X,Y方向にどれだけスクロールされているかを示すものです。 (0,0)を設定すると、スクロールさせていない通常の状態になります。
grotate
矩形画像を回転してコピー
grotate命令は、gcopy命令に回転を含めた処理を行ないます。 p1で、コピー元のウィンドウIDを指定、(p2,p3) でコピーされる元の画像にあ たる座標を指定します。
gsel
描画先指定、ウィンドウ最前面、非表示設定
画面制御命令の描画先を指定したウィンドウIDの画面に変更します。 これ以降は、p1で指定したウィンドウIDの画面に対して、mes命令やpicload命 令などの画面描画に関する命令が実行されるようになります。 p2でオプションのスイッチが指定できます。
gsquare
任意の四角形画像をコピー
任意の4点を持つ四角形をコピーまたは塗りつぶします。 p1で、画像コピー元のウィンドウIDを指定します。 p1に-1などマイナス値を指定した場合は、画像コピーではなく塗りつぶしが行 なわれます。 その際、フルカラーモード時には 描画色による塗りつぶしとなります。
gzoom
変倍して画面コピー
gzoom命令は、 指定したウィンドウIDの画面の一部を現在の描画先カレントポ ジションに、任意の大きさに変倍してコピーします。 コピー元のウィンドウIDは、自分のウィンドウIDと同じかまたは、screen命令 やbuffer命令で初期化されたウィンドウIDでなければなりません。
hsvcolor
HSV形式でカラーを設定する
色の指定をHSV形式で行ないます。 color命令と同様に、以降の描画命令で設定された色が使用されます。
line
直線を描画
画面上に、(p1,p2)と(p3,p4)を結ぶ直線を描画します。 (p3,p4)を省略した場合は、カレントポジションから(p1,p2)まで、現在設定さ れている色で直線が描画されます。 line命令実行後は、(p1,p2)の座標がカレントポジションになります。
mes
メッセージ表示
ウィンドウ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウィンドウ上の仮想的なカーソ ル位置から表示され、カレントポジションが次の行に自動的に移動します。 表示されるメッセージのフォントは、font命令で指定することができます。
palcolor
描画パレット設定
メッセージ表示、描画などの色を指定した値に設定します。 p1はパレットコードになります。パレットコードは、 パレットモード画面のために用意された256色(palette命令により設定された色)の 中で何番目かを示すものです。
palette
パレット設定
現在の画面に設定されているパレットの色データを変更します。 p1のパレットコードにp2,p3,p4で指定した輝度のRGBカラーを設定します。 p1の値がマイナスの場合は、設定は無視されます。 p5の値によって、画面上の更新を指定することができます。
pget
1dotの点を取得
画面上の1ドットの色データを読みだします。 指定した座標にあるドットの色データが選択色として設定されます。
picload
画像ファイルをロード
画像ファイルをロードします。通常は、 picload "test.bmp" とするだけで、"test.bmp"で指定された画像ファイルが現在の画面にロードさ れ、ウィンドウサイズが自動的に絵のサイズに合わせられます。
pos
カレントポジション設定
メッセージ表示、オブジェクトの表示などの基本座標となるカレントポジショ ンの座標を指定します。 Xは一番左が0に、Yは上が0になり、1ドット単位の指定になります。 パラメータの省略をすると、現在の値が使われます。
print
メッセージ表示
ウィンドウ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウィンドウ上の仮想的なカーソ ル位置から表示され、カレントポジションが次の行に自動的に移動します。 表示されるメッセージのフォントは、font命令で指定することができます。
pset
1dotの点を表示
画面上に現在設定されている描画色で1ドットの点を描画します。
redraw
再描画の設定
画面の描画モードを指定します。描画モードとは、 描画モード0: mes,print,gcopy,gzoom などの画面制御命令が実行されても仮想画面を書き換 えるだけで、実際の画面には反映されません。 描画モード1: 画面制御命令が実行されると、実際の画面にも反映されます。
screen
ウィンドウIDを初期化
指定したウィンドウIDを初期化して使用できるようにします。 HSPの初期状態では、ウィンドウID0の画面しか使用されていませんが、 ウィンドウID1以上を指定することで、新しいウィンドウを作成することができます。
sendmsg
ウィンドウメッセージの送信
p1で指定したウィンドウハンドルに対して、 p2のメッセージとp3,p4のパラメ ーターを送信します。 p1で指定するウィンドウハンドルの値は、 HSPのウィンドウであれば システム変数hwndを、HSPのウィンドウオブジェクトの場合はobjinfo関数により 取得することができます。
syscolor
システムカラーを設定する
p1で指定したシステムカラーインデックスを選択色として設定します。 (color命令で指定したのと同じ状態になります) p1で指定できるシステムカラーインデックスは、以下の値となります。
sysfont
システムフォント選択
システム標準のフォントを選択します。 p1で、フォントの種類を指定します。これは以下の中から選びます。
title
タイトルバー設定
p1の指定が省略されている場合には、ウィンドウのタイトルバーキャプション を、"strings"の内容に設定します。
width
ウィンドウサイズ設定
ウィンドウのクライアントサイズ(実際に表示される大きさ)とウィンドウ表示 位置を変更します。 クライアントサイズは、screen命令やbuffer,bgscr命令で初期化された画面サ イズより大きくすることはできません。
winobj
ウィンドウオブジェクトの配置
winobjは、 Windowsのシステムがサポートするウィンドウをオブジェクトとし て配置します。 p3,p4で配置するX,Yサイズを指定します。 サイズの指定が省略されるか0以下 の場合は、objsizeで設定されている値が使用されます。