「GetKeySatate.exe(キー状態取得実行ファイル)」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Pizz (トーク | 投稿記録)
ページの作成:「= 概要 = キー押下状態を取得する実行ファイルです。 Shift、Ctrl、Alt いずれかのキーの押下状態を取得できます。 マクロスク...」
 
Pizz (トーク | 投稿記録)
ページの白紙化
 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
= 概要 =
キー押下状態を取得する実行ファイルです。


Shift、Ctrl、Alt いずれかのキーの押下状態を取得できます。
マクロスクリプトからキー状態を取得し、状態に応じて動作をコントロールしたくて作成しました。
作成されたマクロから利用できますので、ご自由にお使いください。
zipファイルをダウンロードしたら、ファイルのプロパティ画面で「ブロックの解除」を行ってください。
(これをしないと実行時に警告が表示されることがあります)
その後、zipファイルを展開して、マクロから実行されるフォルダーに配置してください。
(推奨は "Macros"フォルダーとします)
[[ファイル:GetKeyState.zip]]
= 使い方 =
コマンドライン引数で、"Shift" "Ctrl" "Alt" のいずれかを渡してください。
* 大文字小文字は区別しません
* 実は先頭の1文字しか判断していませんので、"s"のみとかでも大丈夫です
戻り値(終了コード)
* 1: キーが押されている
* 0: キーは押されていない
* -1: エラー(引数間違い、メッセージボックスを表示します)
マクロにショートカットキーを割り当てる際は、該当キーありとなしの両方を割り当ててください
* Shift+F8 / F8 など
起動までに若干のタイムラグがありますので、すばやく操作すると取りこぼすことがあります。
そういう意味では、ショートカットキーにはあまり向かないかもしれません。
私は、ツールバー起動で使っています。
= 実装例 =
<source lang="javascript">
var wshShell = new ActiveXObject("WScript.Shell");
// カレントディレクトリをマクロディレクトリに変更
wshShell.CurrentDirectory = editor.FullName.match(/^.*\\/)[0] + 'Macros';
// SHIFTキー状態を取得
var shift = wshShell.Run("GetKeyState.exe shift", 0, true);
if(shift == -1) window.Quit();
if(shift == 1) window.Alert("Shiftキーが押されています");
</source>
ソースも置いときます(VS2005 C++)
(こちらは通常ダウンロードの必要はありません)
[[ファイル:GetKeyStateSrc.zip]]

2019年3月23日 (土) 13:33時点における最新版

スポンサーリンク