HSP3Dish用 Windows上でキーボードの押された状態を取得
- ソフト名 :mod_dgetkey.as
- バージョン :0.2
- ライセンス :フリーソフト
- OS :Windows
- 開発 :しまくろねこ
「mod_dgetkey.as」は、**Delphi用のモジュールファイル(ユニット)**で、キーボード入力状態を簡易に取得するためのライブラリです。Delphiのアプリケーション内で、**キーが押されているかどうか(GetAsyncKeyState相当)**を取得できる関数が含まれています。
これは実行ファイルではなく、「Delphi開発者向けのソースコード」です。
🧾 基本情報
| 項目 | 内容 |
|---|---|
| ファイル名 | mod_dgetkey.as |
| 種別 | Delphiユニットファイル(.pasに似た構成) |
| 主な機能 | 任意のキーの押下状態を取得する関数群 |
| 使用目的 | ゲーム、ユーティリティなどで非同期キー入力を扱うため |
| 対応環境 | Delphi 5〜7 以降(現在でも調整すれば使える) |
📦 含まれるもの
ダウンロードZIPの中には通常以下が含まれます:
mod_dgetkey.as… 本体ユニット(拡張子.asですが中身は.pas相当)readme.txt… 使用方法・関数仕様の簡単な説明(日本語)
🔧 使用方法(Delphi上)
① Delphi プロジェクトに追加する
mod_dgetkey.asを.pasにリネームする(推奨)
例:mod_dgetkey.pas- Delphiのプロジェクトに「既存ファイルの追加」で読み込む
usesセクションにmod_dgetkeyを追加
uses
..., mod_dgetkey;
② 使用可能な関数
代表的な関数は以下の通り:
function DGetKey(VK: Integer): Boolean;
- VK: 仮想キーコード(
VK_RETURN,VK_ESCAPE,VK_F1など) - 戻り値:
Trueなら現在そのキーが押されている
例:
if DGetKey(VK_LEFT) then
ShowMessage('←キーが押されています');
これにより、Windows APIの GetAsyncKeyState をラップして、ループ内で非同期にキー入力検知ができます。
💡 利用例
ゲーム開発・ツールなどで使える場面:
| シーン | 活用方法 |
|---|---|
| 簡易ゲーム作成 | プレイヤーのキー入力にリアルタイム反応させる |
| グローバルホットキー機能 | 特定キー押下で処理実行(常駐系ソフトなど) |
| 非フォーカス入力監視 | アクティブでないウィンドウでもキー状態取得 |
⚠ 注意点
| 項目 | 内容 |
|---|---|
| OS依存 | Windows APIベースなので、Windows専用 |
| セキュリティソフト | 非アクティブウィンドウからキー取得は「キーロガー類似」と誤検出される場合あり |
| 名前拡張子 | .asはPascalとして認識されないことがあるので、.pas に変更して使うと便利 |
| バージョン | Delphiの新しいバージョンでは型の互換性に注意(例:LongBool → Boolean) |
✅ まとめ
| 項目 | 内容 |
|---|---|
| 何ができる? | 任意のキーが「今押されているか」を取得可能 |
| 誰向け? | Delphiを使うWindowsアプリ・ゲーム開発者向け |
| 導入方法 | .as → .pas に変更し、uses で呼び出す |
| 使用関数 | DGetKey(VK) など簡易APIあり |
| メリット | GetAsyncKeyState より簡単で高速に書ける |