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

提供:MeryWiki
ナビゲーションに移動 検索に移動
編集の要約なし
18行目: 18行目:
= 更新履歴 =
= 更新履歴 =
2019/3/4 新規作成
2019/3/4 新規作成
2019/3/23 公開ページの変更(中身に変更はありません)
2019/3/23 公開ページの変更(中身に変更はありません)



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

概要

キー押下状態を取得する実行ファイルです。

Shift、Ctrl、Alt いずれかのキーの押下状態を取得できます。 マクロスクリプトからキー状態を取得し、状態に応じて動作をコントロールしたくて作成しました。

作成されたマクロから利用できますので、ご自由にお使いください。


zipファイルをダウンロードしたら、ファイルのプロパティ画面で「ブロックの解除」を行ってください。 (これをしないと実行時に警告が表示されることがあります)

その後、zipファイルを展開して、マクロから実行されるフォルダーに配置してください。 (推奨は "Macros"フォルダーとします)

ファイル:GetKeyState.zip

更新履歴

2019/3/4 新規作成

2019/3/23 公開ページの変更(中身に変更はありません)

使い方

コマンドライン引数で、"Shift" "Ctrl" "Alt" のいずれかを渡してください。

  • 大文字小文字は区別しません
  • 実は先頭の1文字しか判断していませんので、"s"のみとかでも大丈夫です


戻り値(終了コード)

  • 1: キーが押されている
  • 0: キーは押されていない
  • -1: エラー(引数間違い、メッセージボックスを表示します)


マクロにショートカットキーを割り当てる際は、該当キーありとなしの両方を割り当ててください

  • Shift+F8 / F8 など

起動までに若干のタイムラグがありますので、すばやく操作すると取りこぼすことがあります。 そういう意味では、ショートカットキーにはあまり向かないかもしれません。 私は、ツールバー起動で使っています。


実装例

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キーが押されています");


ソースも置いときます(VS2005 C++) (こちらは通常ダウンロードの必要はありません)

ファイル:GetKeyStateSrc.zip

スポンサーリンク