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

Sukemaru (トーク | 投稿記録)
Sukemaru (トーク | 投稿記録)
56行目: 56行目:


= 実装例 =
= 実装例 =
'''''window.Alert( "XXキーが押されています" );'''''
サンプルコード1、サンプルコード2 の<br>
<br> の部分を任意の動作コードに置きかえてください。マクロの動作内容に変化をつけたり、複数のマクロの実行コードを振り分けてひとつのマクロにまとめたりすることができます。
'''''window.Alert( "XXキーが押されています" );'''''
<br> の部分を任意の動作コードに置きかえてください。<br>
マクロの動作内容に変化をつけたり、複数のマクロの実行コードを振り分けてひとつのマクロにまとめたりすることができます。




102行目: 104行目:
else {
else {
   window.Alert( "修飾キーは押されていません" );
   window.Alert( "修飾キーは押されていません" );
}
</source>
;サンプルコード3
ポップアップメニューマクロへの導入サンプルです。<br>
メニューに表示する内容や、選択した項目から実行するコマンドを切り替えることができます。
<source lang="javascript">
var getKeyState = editor.FullName.replace( /[^\\]+$/i , "" )
                + "Macros\\GetKeyState.exe";
var WshShell = new ActiveXObject( "WScript.Shell" );
// マクロ開始時の Ctrl キーの状態を取得
var $ctrl1 = WshShell.Run( "\"" + getKeyState + "\" ctrl", 0, true );
var menu = CreatePopupMenu();
menu.Add( "ほげ", 1 );
// Ctrl キーを押しながら実行したときは、項目を追加表示する
if ( $ctrl1 == 1 ) {
  menu.Add( "ほげほげ", 2 );
}
// ポップアップメニューを表示
var r = menu.Track( mePosMouse );
// Ctrl キーを押しながら項目を選択したときは、ダイアログに表示する内容を切り替える
var $ctrl2 = WshShell.Run( "\"" + getKeyState + "\" ctrl", 0, true );
switch( r ) {
  case 1:
  if      ( $ctrl2 == 0 )  window.Alert( "ほげ" );
  else if ( $ctrl2 == 1 )  window.Alert( "ふが" );
  break;
  case 2:
  if      ( $ctrl2 == 0 )  window.Alert( "ほげほげ" );
  else if ( $ctrl2 == 1 )  window.Alert( "ふがふが" );
  break;
  default:
  break;
}
}
</source>
</source>
スポンサーリンク