Macro/投稿/21

http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F21


Top > Macro > 投稿 > 21

カーソル直前のマクロファイルを実行

  • ページ: Macro/投稿
  • 作者: gis_dur?
  • カテゴリー: js
  • 投稿日: 2004-02-26 (木) 21:34:39

メッセージ

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
// 【0executeMacro.js】
// 必ず正しく指定
// ## 設定 ##
 // スクリプト自身のファイル名
 var SCRIPT_NAME = "0executeMacro.js";
 // マクロ群のあるフォルダのフルパス
 var MACRO_FOLDER = "C:\\...\\sakura\\macro";
 // マクロファイルの拡張子(小文字,正規表現不可)
 var MACRO_EXT = ".mac|.ppa|.js|.vbs";
 // Sendkeys用文字列
 // shortcutキーも可
 // %:alt ^:ctrl +:shift
 var KEYS_OPENMACRO = "%ta";//マクロ開く
 var KEYS_EXECMACRO = "%td";//マクロ実行 
// ## 設定終了 ##
 
var DIALOG_TYPE=1;
var DLGRET_AUTO=-1;
var DLGRET_OK=1;
var DLGRET_CANCEL=2;
var RECKEY_NAME="RecKey.mac";
MACRO_EXT="|"+MACRO_EXT+"|";
 
var shell=new ActiveXObject("WScript.Shell");
var sel_text=get_left();
var astr_fileNames=get_macros(sel_text);
var dlg_return=pop_dialog(astr_fileNames);
 
if (dlg_return!=DLGRET_CANCEL) {
 del_left();
 var path=MACRO_FOLDER+"\\"+astr_fileNames[0];
 shell.Sendkeys(KEYS_OPENMACRO);
 shell.Sendkeys(path);
 shell.Sendkeys("{ENTER}");
 shell.Sendkeys(KEYS_EXECMACRO);
}
 
function get_left() {
 var str="";
 Editor.CancelMode(0);
 Editor.WordLeft_Sel(0);
 str=Editor.GetSelectedString(0);
 if (str.match(/\x0D\x0A|\x0D|\x0A/)) {
  str="";
 }
 Editor.Right(0);
 return str;
}
function del_left() {
 Editor.CancelMode(0);
 Editor.WordLeft_Sel(0);
 Editor.Delete(0);
}
function get_macros(in_sel_text) {
 var fsys=new ActiveXObject("Scripting.FileSystemObject");
 var fld=fsys.GetFolder(MACRO_FOLDER);
 var fset=new Enumerator(fld.Files);
 var NOEXT=-1;
 var str="";
 var ext="";
 var arr=new Array();
 if (in_sel_text=="") return arr;
 for (;!fset.atEnd();fset.moveNext()) {
  str=fset.item().Name.toLowerCase();
  i=str.lastIndexOf(".");
  if (i==NOEXT) continue;
  ext="|"+str.substring(i)+"|";
  if (MACRO_EXT.indexOf(ext)==NOEXT) continue;
  if (str==SCRIPT_NAME.toLowerCase()) continue;
  if (str==RECKEY_NAME) continue;
  if (str.indexOf(in_sel_text)==0) arr.push(str);
 }
 return arr;
}
function pop_dialog(in_arr) {
 if (in_arr.length!=1) return DLGRET_CANCEL;
 var message="";
 message+="マクロ「"+in_arr[0]+"」を実行します\n";
 return shell.Popup(message,0,"マクロ実行の確認",DIALOG_TYPE);
}


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2006-07-29 (土) 23:44:38 (4466d)