プログラミング工房 >

HSPの部屋

HSP(Hot Soup Processor)について

 Windowsプログラミングの初心者に最適なフリーのお手軽インタプリタ言語です。ゲーム開発のための機能が特に充実していますが、ファイル・ネットワーク・文字列・コンソール・GUIコントロール・メモリ・ウィンドウメッセージ・クリップボード・レジストリなど一般的なツール作りのための機能も十分に揃っています。

 対応プラットフォーム: Windows 98、ME、2000、XP、Vista、7、8
 公式サイト: HSPTV! / Hot Soup Processor オフィシャルホームページ

HSPニュース

2014/12/27 HSP3.4公開

過去のHSPニュース

GTK+関連

HSPからGTK+を使うためのチュートリアル(未完成。随時更新中)

HSP3向けサンプル

(Windows XP / HSP 3.0a 以降で動作確認)

ここにあるスクリプトは目的にかかわらず自由に利用していただいてかまいません。自己責任でお使い下さい。

モジュール

UTC文字列とローカル時間文字列を相互変換
プロセスの実行優先度を設定する
クリップボード操作(テキスト専用)
タスクトレイアイコン操作
標準の警告音を鳴らす
ごみ箱を空にする
標準入出力
RGB値をCOLORREF値に変換
文字列中の改行コードを判別、変換、削除
テキストの先頭または末尾から指定された文字列を削除
HSPのウィンドウを確実にアクティブにする
文字コード変換のためのDLL、"jconvlib"を利用する
統合アーカイバプロジェクトのLZHファイル圧縮/展開(解凍)用DLL「UNLHA32.DLL」を利用する
パスの対象がフォルダかどうかチェック
XPや7などのNT系Windowsでシャットダウン・再起動・ログオフ・サスペンド・休止を行う
正規表現ライブラリ、"bregexp.dll"を利用する

アプリケーション

Windowsで任意のウィンドウをドラッグしてデスクトップ画面の上側にはみ出させたら最小化、左右にはみ出させたら閉じさせる機能を持った常駐プログラム
Google検索
HSP3用簡易コマンドラインコンパイラ
タスクトレイアイコンとして表示されるデジタル時計
編集中HTMLファイルのプレビュー専用ウェブブラウザ
HSP3のcommonフォルダ内のWin32 API定義を検索
PC内のCOMコンポーネント情報ブラウザ
エディタで開いているスクリプト言語のソースを引数付きで実行
ウェブ上にあるファイルをブラウザを使わずにダウンロード
複数行のスクリプトを一発でコメント化/解除 (エディタ外部ツール)
「かんたん入力」+α (エディタ外部ツール)
SopCastを起動してウィンドウを画面の左端に移動する

コンソール・アプリケーション

標準入力から来たデータをそのまま標準出力に出力
標準入出力とクリップボードの間でテキストをコピー
指定された文字列を標準入力から取得したテキストの各行頭に追加、または各行頭から削除
指定された文字列を標準入力から取得したテキストの各行末に追加、または各行末から削除

スクリプト

クリップボード内のテキストに行番号を付加する
ウィンドウメッセージ定数マクロ
2つのコンソール・アプリをパイプでつないで実行
標準出力をファイルにリダイレクトしてコンソール・アプリを実行
標準出力をパイプにリダイレクトしてコンソール・アプリケーションを実行し、その出力を変数で受け取る
標準入力をパイプにリダイレクトしてコンソール・アプリケーションを起動し、スクリプト(変数)からテキストデータを流し込む
名なしパイプと独自メッセージによるプロセス間通信(エディタと外部プログラムの連携)
実行ファイルがGUIアプリかCUIアプリか調べる
仮想キーコード定義マクロ
警告音(Beep)が出ないinputに見せかけたmesbox
Amazon E-Commerce Service(ECS)から取得したデータをXMLパーサー(MSXML)で解析する
月間カレンダーコントロール関連定数マクロ
エディットコントロール関連定数マクロ
ボタン用メッセージ関連定数マクロ
コンボボックス用メッセージ関連定数マクロ
コモンコントロール共通メッセージ関連定数マクロ
リストボックス用メッセージ関連定数マクロ
リストビュー用メッセージ関連定数マクロ
プログレスバー用メッセージ関連定数マクロ
ステータスバー用メッセージ関連定数マクロ
タブコントロール用メッセージ関連定数マクロ
ツールバー用メッセージ関連定数マクロ
ツールチップ用メッセージ関連定数マクロ
トラックバー(スライダー)用メッセージ関連定数マクロ
ツリービュー用メッセージ関連定数マクロ
アップダウンコントロール用メッセージ関連定数マクロ

HSP3 Tips

命名規則
コマンドライン引数の取得
ファイル分割(スクリプト挿入)
IEコンポーネントのリサイズ
コンソールアプリケーションに設定される標準入出力ハンドルのデフォルト値
「かんたん入力」対応AHTファイルのかんたんな書き方

HSPに関する雑文

スクリプト言語の長所
Hot Soup Processor

参考資料

おすすめサイト

ちょくとのページ - HSPでWin32APIを活用するためのバイブルです。

過去のHSPニュース

2007/10/17

書籍『最新HSP3.1プログラミング入門 Windows98/NT/2000/Me/XP/Vista対応』発売

(目次)

1章 HSPの準備

HSPのインストール / サンプルで遊んでみよう / いよいよスタート

2章 プログラミングの基礎

プログラミングの準備 / HSPスクリプトエディタを使ってみよう / 超カンタンスクリプト / HSPに命令を出そう / スクリプトに旗を立てよう / これがランチャー? / 変数を使ってみよう / さらに高度な条件判断 / 実行ファイルできちゃった / 誰にもわからない数 / 文字がいっぱい / メモリいただきます / おいしく効率アップ

3章 HSPプログラムの作成

デジタル時計の作成 / CGビューアーの作成 / サウンドプレイヤーの作成 / テキストエディタの作成 / シューティングゲームの基本 (画像を動かすサンプル) / マップ表示の基本 / ブラウザ実行プログラムの作成 / COMコンポーネントの利用

4章 HSPプログラミング詳説

シューティングゲームの作成 / ノベルゲームの作成 / シミュレーションRPGの作成 / スクリーンセーバーの作成 / 3Dゲームの作成

付録

コマンド一覧 / 添付CD-ROMについての説明

コラム

HSPって何ですか / どんな機種で動作するのですか / DirectXとは? / HSPでどんなことができるの / なぜインタープリタなのですか / HSPTVとは? / HSP2.61から新しく変わった部分は? / HSP2.61のスクリプトを動作させるには / HSPを使う利点は何ですか / ステップ実行機能について / かんたん入力機能 / 自由に使ってかまわないのですか / フォルダの指定がうまくできないようです / ファイルの暗号化 / 拡張ランタイムについて / HSP3は難しい? / Peasエディタとは? / HSP3支援モジュール / 省略値について / WindowsXPへの対応について / Windows Vista上での注意点 / 画像形式について / 拡張プラグインとは? / HSP3.1で追加されたプラグイン / HSPCVプラグインを活用しよう / 音楽CDの再生 / MCIの奥深い世界 / OGG形式の再生 / コンソールモードについて / gmodeでのコピーモードが正常に設定されません / mousex、mouseyでカーソルの位置が参照できません / HSPプログラムコンテスト / HSPで広がるパソコン教育 / gcopy命令による画像操作 / スクリーンセーバーの目的 / wait20回の謎 / HGIMG3のオブジェクトパラメータ設定

2007/08/25 HGIMG ver3.1FIX1公開
2007/08/01

HSP 3.1公開

(変更点)
●RC1のrandomize命令で引数を省略した時に正しく初期化されなかった不具合を修正。
●拡張プラグインhspdaのsortval命令で降順ソートが無効になっていた不具合を修正。
●ドキュメントの表記及び色を一部修正。
●HSPTVブラウザのセキュリティ機能の一部を修正。
●HSPTVブラウザでAlt+F4による終了時にプロセスが残る不具合を修正。
●モジュール空間内で指数付きのフォーマットを使用するとエラーになる不具合を修正。
(history.txtより)

HSPプログラムコンテスト2007、作品の募集を開始

2007/07/22

HSP 3.1RC1公開

(変更点)
●1行が非常に長いスクリプトでエラー行表示を間違える不具合を修正。
●AHTコメントのnameオプションでエラーが出ることがある不具合を修正。
●プリプロセッサ行の末尾にある漢字によっては行が接続される不具合を修正。
●「'」のコード表記を「'\''」で行なう仕様補足をマニュアルに追加。
●拡張プラグインhspextのdirlist2命令で返されるファイル数が正しくなるように修正。
●指数部のある実数リテラル表記でエラーが出ることがある不具合を修正。
●#const命令に実数値であることを指定するdoubleオプションを追加。
●kernel32.as内の関数定義を一部修正。
●#setmod命令の機能を正式に削除。
●Peasエディタの正式版を同梱。
●HSPTV機能を利用するためのモジュール及びマニュアル(hsptv_api.txt)を追加。
(history.txtより)

2007/07/15

HSPプログラムコンテスト2007公式ページ 仮公開。

2007/06/09

HSP 3.1β10公開

(変更点)
●拡張プラグインhspdxを最新バージョンに差し替え。
●拡張プラグインhspoggを追加。
●gdi32.as内のAngleArc関数定義を修正。
●hspcvプラグインのヘッダファイル及びドキュメントを修正。
●#modterm内でlogmesを使用した時にエラーが発生する不具合を修正。
●実数の表現として指数部のある形式を認識するように修正。
●dupptr命令で作成した文字列型変数の参照ポインタがおかしくなる不具合を修正。
●拡張プラグインhspextのdirlist2命令で起こる各種不具合を修正。
●拡張プラグインhspdaのsortval命令を実数型配列変数対応に修正。
●strmid命令の読み出しサイズ指定によって余分なメモリを確保しないように修正。
●ヘルプのginfo_winx,ginfo_winyの項目を一部修正し、ginfo_sx,ginfo_syの説明を追加。
●AHTコメントでnameオプションを指定した時に値が認識されなくなる不具合を修正。
●拡張プラグインHGIMG3の機能追加と不具合をいくつか修正。
(hsp31b10.txtより)

2007/04/21

HSP 3.1β9公開

(変更点)
●HSPCL(コンソール版)のmes命令で長い文字列に改行が入る不具合を修正。
●β8版の拡張で一部のプラグイン機能で互換性がなくなっていた不具合を修正。
●hspcmp.dllのhsc_ver命令によるバージョン表記を修正。
●getstr命令の第5パラメーターヘルプを入れ忘れていたのを修正。
●初期化済みのstruct型変数をDebugウィンドウで正しく表示されるように修正。
●struct型の配列終了処理でエラーが発生することがある不具合を修正。
●HSP3アイコンを256色(8bit)のものに変更。
 => エディタのアイコンがオリジナルのものになっています。
(hsp31b9.txtより)

2007/04/07

HSP 3.1β8公開

(変更点)
●新規拡張プラグインhspcvを追加。
 => OpenCV(Intel Open Source Computer Vision Library)の機能を手軽に利用できるそうです。
●変数データをまとめてファイルに読み書きするためのvload、vsave関連命令(hspdaプラグイン)を追加。
 => スクリプト内で使用している、すべてもしくは任意の変数をまとめて手軽にファイルに保存したり、逆にファイルから読み込んだりするための命令群で、保存形式は独自のバイナリ。
●HSPCL(コンソール版)のinput命令でバイナリーモード時にEOFを誤認識する不具合を修正。
●コンパイル時の追加ファイル(hspdef.as等)が存在しなくてもエラー表示しないように修正。
●変数名情報を常に出力するオプションを#cmpopt命令に追加。
 => vload、vsave系命令の導入に合わせたもの。
●HSPSDK(プラグイン)側から変数IDと変数名に関する情報を取得可能に修正。
●RSSモジュール(mod_rss.as)のモジュール名を修正。
 => "#ifndef __mod_img__" を "#ifndef __mod_rss__" に修正したことを指しているようです。
●user32.as内のGetWindowModuleFileName関数定義を修正。
●拡張プラグインhspinetのftpopen命令のポート指定ができない不具合を修正。
●拡張プラグインHGIMG3の機能追加と不具合をいくつか修正。
●β7版でスクリプトエディタの標準拡張子が.asになっていた不具合を修正。

2007/2/10

HSP 3.1β7公開

(おもな変更点)
●ラベル型変数を実装。
●標準エディタのソース色分け機能の修正。
●標準エディタで正規表現での検索が可能に。
●標準エディタの外部ツール登録機能の修正。
●vartype関数の変数指定で配列変数が指定可能に。
●repeat命令の不具合を修正。
●oncmd命令の不具合を修正。
●ユーザー定義関数内で関数の戻り値が代入される変数型が変更できない不具合を修正。
●ヘルプの誤記を修正。
●型を拡張するプラグインで型変換に失敗することがあった不具合を修正。
●#deffuncのonexitオプションで指定された命令が最適化機能により無効化される不具合を修正。
●拡張プラグインHGIMG3の機能追加と不具合修正。
●AHTコメントキーワードに「pure」を追加。従来はマクロキーワードが文字列として定義されている場合、必ず""付きで展開されていたのが、「pure」を指定した場合は""なしで展開されるようになった。これによって、書き換えダイアログでリテラル文字列だけでなく、スクリプト中で使う名前(識別子)などを入力してもらうことも可能になった。

2006/12/1HSPプログラムコンテスト2006 最終審査結果発表
2006/11/17

書籍『HSP3リファレンスブック―プログラミングの基本と、命令・関数リファレンス』発売

(目次)
1章 イントロダクション
HSPとは?、動作環境、インストールとデモンストレーション、HSP2からの変更点、HSPのオンライン・リソース、著作権・ライセンスについて
2章 プログラミング・ガイド
スクリプトの基本、外部エディタの使用、ラベル一覧、ワンキー・ヘルプ、起動ディレクトリ、実行ファイル関連、HSPスクリプト・サンプル、拡張、デバッグ・ウィンドウ、スクリプトの色分けとタブ、コンソール版HSP
3章 言語仕様
HSP言語の規定、基本文法、拡張文法
4章 内部動作の詳細
タスク関連、マルチメディア関連、システム関連
5章 アップデート・ガイド
「HSP3」について、「ver2.x」からのスクリプト移行
6章 HSP3標準命令・関数リファレンス
COMオブジェクト操作関数、COMオブジェクト操作命令、HSPシステム制御命令、オブジェクト制御命令、システム変数、ファイル操作命令、プリプロセッサ命令、プログラム制御マクロ、プログラム制御命令、マルチメディア制御命令、メモリ管理関数、メモリ管理命令、画面制御命令、基本入出力関数、基本入出力制御命令、特殊代入命令、標準定義マクロ、文字列操作関数、文字列操作命令、ほか
7章 HSP3全命令一覧
標準機能、hgimg3プラグイン、hsp3utilモジュール、hspcmpプラグイン、hspdaプラグイン、hspdbプラグイン、hspdxプラグイン、hspextプラグイン、hspinetプラグイン、hspsockプラグイン
8章 付録
HSP3ワンポイント・テクニック、HSPたまひよ塾、HSPよく使うフレーズ
2006/11/15HSPプログラムコンテスト2006 一次審査結果発表
2006/11/12HSP 3.1β6公開
2006/8/5

書籍『公認 HSPファンブック 楽しく始める/極める本』発売

(目次)
ここが!! HSP秘密研究所だ!!、HSPって何?
収録ソフト全紹介
HSPコンテスト作品大紹介!
生みの親が語るHSP
HSPの歴史、HSPのこれから、HSPで広がるプログラミング教室、フリーの開発言語 作者に訊け!
HSPをもっと楽しむソフト&テクニック
HSPスクリプトエディタの使い方、HSPの3D機能で楽しもう、d3module、HSPLetってなに?、Net-Ballの遊び方、2Dシューティングゲームのキャラクター移動の基礎、困ったときのバネ頼み、LandHere/Lite
HSP主要キーワード一覧
2006/7/24

書籍『逆引きHSP3プログラミング事典 応用編』発売

(目次)
1章 3D
3Dモデルのトゥーンシェーディング表示、3Dモデルの当たり判定、爆発アニメの作り方、ほか
2章 ゲーム
ノベルゲーム、RPGのマップ移動画面を作る、麻雀の役判定、ネットワークゲームを作成する、ほか
3章 ウィンドウ
ウィンドウを強制的にアクティブにするには、角の丸い長方形のウィンドウを作成するには、任意の形状を持ったウィンドウを作成するには、ほか
4章 オブジェクト
メニューを作成するには、オブジェクトにツールチップを設定するには、ボタンと同じような動作をするツールバーを作成するには、ほか
5章 グラフィック
アイコンを取得して表示するには、「Susie 32bit Plug-in」を利用するには、画像データを「poke」「peek」命令で直接操作するには、ほか
6章 システム
実行形式プログラムを多重に起動させないようにするには、ダブルクリックイベントを有効にするには、クリップボードの読み書きをするには、ほか
7章 ファイル
CRC32、MD5を求める(hspinet)、COMを利用してファイルの情報を取得するには、「Unzip32.dll」で解凍するには、ほか
8章 マルチメディア
wavデータの多重再生、MCI命令によるCD関連のコマンド記述方法は、プログラム上から音量をコントロールするには、ほか
9章 文字列
指定数値を3桁毎のカンマ付きに編集するには、既にあるテキストファイルに行番号を付けて格納するには、改行コードを変換するには、ほか
10章 ネットワーク
シリアルポートによる通信、メールの送受信を行なう、IE(Internet Explorer)を遠隔制御、ほか
11章 データベース
MySQLにアクセスしてデータ取得
12章 CGI
環境変数の値を取得するCGIプログラム、クッキーの書き込みCGI、カウンタCGI、ほか
2006/7/21

書籍『逆引きHSP3プログラミング事典 基本編』発売

(目次)
1章 HSP豆知識
スクリーンセーバーを作るには、指定されたDLLファイルが見つからない時には、HSP2.6xからHSP3に移植するには、ほか
2章 ウィンドウ
ウィンドウ・タイトルの文字を変更するには、ウィンドウをHSP2.6x形式のスタイルに変更するには、ウィンドウをプログラム上から閉じるには、ほか
3章 オブジェクト
テキスト・エディタを作成するには、リストビューやツリービュー等のコントロールを利用するには、パスワード入力ボックスを配置するには、ほか
4章 グラフィック
bufferにある画像を表示するには、picloadで画像の表示位置を指定するには、ペイント処理をするには、ほか
5章 ゲーム
ブロック崩しを作成するには、複数の2Dキャラクターを動かすには、絵と文字を同時に動かすには、ほか
6章 システム
入力されたキーを調べるには、フォント選択ダイアログを表示するには、フォルダ選択ダイアログを表示するには、ほか
7章 ファイル
フォルダの中にあるファイル名一覧を調べるには、Excelのデータ(CSVファイル)を読み込んで加工するには、ファイル選択ダイアログで複数の拡張子を使うには、ほか
8章 マルチメディア
マルチメディアファイルを再生するには、MCIコマンドを利用して動画再生を行なうには、MCIコマンドを利用して音声の録音/再生を行なうには、ほか
9章 日付・時刻
現在日付や時刻の書式指定表示するには、指定した日付は、何曜日かを調べるには、十二支・十支を取得するには、ほか
10章 文字列
文字列のソート(並べ替え)をするには、数値文字列に3桁毎にカンマを挿入するには、CSVファイルなどでカンマの数を調べるには、ほか