|
カーソル直前のマクロファイルを実行
- ページ: 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
| | var SCRIPT_NAME = "0executeMacro.js";
var MACRO_FOLDER = "C:\\...\\sakura\\macro";
var MACRO_EXT = ".mac|.ppa|.js|.vbs";
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);
}
|
|
|