お世話になっております。
現在、所謂音ゲを作っているのですが、ゲーム中の操作の一環として、
楽曲プレイ中にESCキーを押した時に、
プレイ中の楽曲を途中中断し選曲画面に戻る、という機能を実装しました。
機能そのものは実装出来たのですが、
隣のF1キーを押してしまい意図しない画面が表示される事が考えられる為、
F1キーを無効化したいです。
デフォルトで設定してあるファンクション機能
(F1:ゲームのプロパティ F12:リセット 等)
を無効化する事は出来ますか?
(できれば他の機能を付加したい)
スクリプトヘルプのINPUTの欄を見ると
F5~F9 以外はシステムで予約されている的な
事が書かれているので通常の方法では難しそうですが。。
何か良い手があれば知恵をお貸しください、
また無理なら「無理」との回答が頂ければと思います。
よろしくお願いします。
ファンクションキーを無効にしたい
Re: ファンクションキーを無効にしたい
試しにスクリプトの無限ループ内で
F1キーを押してみたところ、問題なく(?)
F1キーを押した時に出るウィンドウが出てきました。
UPDATEに帰らなくても出るという事は
ウィンドウそのものに設定してある機能みたいですね。
回答ありがとうございました。
F1キーを押してみたところ、問題なく(?)
F1キーを押した時に出るウィンドウが出てきました。
UPDATEに帰らなくても出るという事は
ウィンドウそのものに設定してある機能みたいですね。
回答ありがとうございました。
Re: ファンクションキーを無効にしたい
無効にしてプレイヤー的に大丈夫なのかどうかはさておき、
無効にすることは可能です。
「RGSSDisableF1AltEnterF12」で検索してみてください。有志の方のGitHubが見つかると思います。
他の機能を付加するのは、自力でコードを書かないといけないです。結構面倒です。
無効にすることは可能です。
「RGSSDisableF1AltEnterF12」で検索してみてください。有志の方のGitHubが見つかると思います。
他の機能を付加するのは、自力でコードを書かないといけないです。結構面倒です。
Re: ファンクションキーを無効にしたい
検索してみた所、サンプルプロジェクトを見つけました。
それを参考に『F1AltEnterF12.dll』を『System』フォルダに入れ、
以下のスクリプトを記述した所、
無事ファンクションキー(自分の場合はF1キー)を無効化することができました!
(1,0,0)は左からF1、F12、ALT+ENTER 、
1で無効化、0で有効(通常通り)のようです。
非常に助かりました、ありがとうございました!
※以下DLL起動用元ソース
それを参考に『F1AltEnterF12.dll』を『System』フォルダに入れ、
以下のスクリプトを記述した所、
無事ファンクションキー(自分の場合はF1キー)を無効化することができました!
コード: 全て選択
Win32API.new("System/F1AltEnterF12", "hook", "III", "").call(1,0,0)
1で無効化、0で有効(通常通り)のようです。
非常に助かりました、ありがとうございました!
※以下DLL起動用元ソース
コード: 全て選択
#==============================================================================
# Chainsawkitten's Disable F1, Alt+Enter, F12 v1.1
#------------------------------------------------------------------------------
# Disable the use of F1, Alt+Enter and F12 by registering a hook which consumes
# keypress events as well as setting the keyboard state.
#==============================================================================
module CskDisable
# Whether to disable F1. 0 = enable, 1 = disable.
DISABLE_F1 = 1
# Whether to disable F12. 0 = enable, 1 = disable.
DISABLE_F12 = 1
# Whether to disable Alt+Enter. 0 = enable, 1 = disable.
DISABLE_ALT_ENTER = 1
end
Win32API.new("System/F1AltEnterF12", "hook", "III", "").call(
CskDisable::DISABLE_F1,
CskDisable::DISABLE_F12,
CskDisable::DISABLE_ALT_ENTER)