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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
| |
pathJumpMain();
function pathJumpMain() {
var path = Editor.GetSelectedString(0);
var reg0 = /(?:.*?)([A-Z]:\\|\\\\[1A-Z])(.*?)(?:(?: |\s){2,}|[\t<>:\|"])(?:.*)/i; //"
var reg1 = /\\\\foobarhoge/i;
var reg2 = /(.*?)\((\d+?),(\d+?)\)/;
if(!path) {
path = Editor.GetLineStr(0);
}
path = path.replace(reg0, "$1$2").replace(/\r|\n/mg,"");
if (reg1.test(path)) {
propMsg(1, path);
} else if (reg2.test(path)) {
var excPth = path.replace(reg2, "$1");
var lineNm = path.replace(reg2, "$2");
var coluNm = path.replace(reg2, "$3");
var objSL = new ActiveXObject("WScript.Shell");
var sakPth = objSL.CurrentDirectory +"\\sakura.exe";
objSL.exec(sakPth +" "+ excPth +" -X="+ coluNm +" -Y="+ lineNm);
objSL = null;
} else {
jumpCnt(path);
}
}
function jumpCnt(p) {
var objSL = new ActiveXObject("WScript.Shell");
var objFS = new ActiveXObject("Scripting.FileSystemObject");
if (objFS.DriveExists(objFS.GetDriveName(p))) {
var d = objFS.GetDrive(objFS.GetDriveName(p));
if (d.DriveType == 3) {
var sh = d.ShareName.toLowerCase();
if(sh.indexOf("foobarhoge") != -1) {
propMsg(2, p);
return(false);
}
}
}
if (objFS.FolderExists(p)) {
objSL.Run('"'+ p +'"');
} else if (objFS.FileExists(p)) {
var ext = objFS.GetExtensionName(p);
var lowerext = ext.toLowerCase();
switch (lowerext) {
case "txt": case "log":
case "dat":
case "ini":
case "sql":
case "js":
case "vbs":
case "mac":
case "pl":
Editor.FileOpen(p);
break;
default:
objSL.Run('"'+ p +'"');
}
} else {
propMsg(3, p);
}
objSL = null;
objFS = null;
}
function propMsg(n, path) {
var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate("about:blank");
var window = ie.Document.parentWindow;
var msg = "カーソル行or選択範囲から抽出した下記のパス文字列は、";
switch (n) {
case 1: msg = msg+"アクセス不可の共有名です";break;
case 2: msg = msg+"アクセス不可の共有パス割当ドライブです";break;
case 3: msg = msg+"ファイルが見つかりません";break;
case 4: msg = msg+"ドライブが利用ません";break; default: msg = "不明なエラーです";break;
}
var st = window.prompt(msg,path);
window = null;
ie = null;
}
|