質問編集履歴

2

内容の補足

2019/10/30 02:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,18 @@
1
- IEが将来使われなくなることから、現在、IEベースで動かしているjsファイルを
1
+ IEが将来使われなくなることから、現在、IEベース(ActiveX)で動かしているjsファイルを
2
2
 
3
3
  修正しようと思い質問いたしました。
4
4
 
5
5
 
6
6
 
7
- 内容しましては、
7
+ ■ 実現したいこ
8
8
 
9
- 指定URLchrome開き、
9
+  JSファイルのみで、以下のこと行いたいす。
10
10
 
11
+  1.指定URL(OAuth認証URL)をjsファイルの引数に持たせてchromeで開く
12
+
11
- その後chromeで開かれているURLを全て取得し、chromeを閉じたいです。
13
+  2.chromeで開かれているURL(開かれているタブの数だけ)を全て取得
14
+
15
+  3.chromeを閉じる
12
16
 
13
17
 
14
18
 
@@ -24,14 +28,146 @@
24
28
 
25
29
 
26
30
 
27
- 追記
31
+ 環境
28
32
 
29
- 環境:teratailタグと同様
33
+ 検証用(ローカル)windows10 64bit
34
+
35
+ 本番用(クラウドサーバ):windows server 2016
30
36
 
31
37
 
32
38
 
33
- 場所:「デスクトップ」/「プロジェクトフォルダ」/「リソースフォルダ」直下
39
+ jsファイル実行場所:「動かしている4Dサーバフォルダ」/「リソースフォルダ」/GetURL.js
34
40
 
35
41
  実行詳細:4D(フランス社製)から「LAUNCH EXTERNAL PROCESS」コマンドを使い、
36
42
 
37
-      cscript //nologo+実行ファイル(絶対パス)+OAuth認証URLを引数に持たせて実行
43
+      cscript //nologo+実行ファイル(絶対パス)+OAuth認証URL(jsファイルの引数)コマンド引数に持たせて実行
44
+
45
+
46
+
47
+ IEベース(ActiveX)で実行していた際のjsファイルを記載します。
48
+
49
+ ```js
50
+
51
+ test();
52
+
53
+ function test() {
54
+
55
+ var READYSTATE_UNINITIALIZED=0;
56
+
57
+ var READYSTATE_LOADING=1;
58
+
59
+ var READYSTATE_LOADED=2;
60
+
61
+ var READYSTATE_INTERACTIVE=3;
62
+
63
+ var READYSTATE_COMPLETE=4;
64
+
65
+ var ieAPP = new ActiveXObject("InternetExplorer.Application");
66
+
67
+ ieAPP.visible = true;
68
+
69
+ var url = WScript.Arguments(0);
70
+
71
+ ieAPP.Navigate(" https://google.com");var startMsec = new Date();while (new Date() - startMsec < 5000);ieAPP.Navigate(url);
72
+
73
+ while (ieAPP.Busy || ieAPP.ReadyState!=4){WScript.Sleep(500)};
74
+
75
+ var sh = WScript.CreateObject("Shell.Application");
76
+
77
+ var array = [];
78
+
79
+ var pattern = 'ドメイン/';
80
+
81
+ for (var i = 0; i < sh.Windows().Count; i++) {
82
+
83
+ var a = "";
84
+
85
+ try {a = sh.Windows(i).document.URL;}
86
+
87
+ catch(e) {}
88
+
89
+ if(a) {array.push(a);}
90
+
91
+ }
92
+
93
+ var fileName = "";
94
+
95
+ var filesh = new ActiveXObject("WScript.Shell");
96
+
97
+ var desktopPath = filesh.SpecialFolders("Desktop");
98
+
99
+ var absoluteFilePath = "";
100
+
101
+ var create = true;
102
+
103
+ var iomode = 1;
104
+
105
+ var format = -2;
106
+
107
+ var fs = new ActiveXObject("Scripting.FileSystemObject");
108
+
109
+ for (var i = 0; i < array.length; i++) {
110
+
111
+ if(array[i].indexOf(pattern) > -1){
112
+
113
+ var start = 0;
114
+
115
+ var end = 0;
116
+
117
+ var code = "";
118
+
119
+ start = array[i].indexOf("code=") + 5;
120
+
121
+ end = array[i].indexOf("&",start) - 1;
122
+
123
+ if (end > 0) {
124
+
125
+ end = end - start + 1;
126
+
127
+ code = array[i].substr(start,end);
128
+
129
+ }else {
130
+
131
+ code = "notfind"
132
+
133
+ }
134
+
135
+ fileName = "code_" + code;
136
+
137
+ absoluteFilePath = desktopPath + "\" + fileName;
138
+
139
+ var file = fs.OpenTextFile(absoluteFilePath,iomode,create,format);
140
+
141
+ }else {
142
+
143
+ fileName = "Error"
144
+
145
+ absoluteFilePath = desktopPath + "\" + fileName;
146
+
147
+ var file = fs.OpenTextFile(absoluteFilePath,iomode,create,format);
148
+
149
+ }
150
+
151
+ file.Close();
152
+
153
+ }
154
+
155
+ if (array.length==0){
156
+
157
+ fileName="ReferenceError";
158
+
159
+ absoluteFilePath = desktopPath + "\" + fileName;
160
+
161
+ var file=fs.OpenTextFile(absoluteFilePath,iomode,create,format);
162
+
163
+ file.Close();
164
+
165
+ }
166
+
167
+ ieAPP.Quit();
168
+
169
+ }
170
+
171
+
172
+
173
+ ```

1

内容の補足

2019/10/30 02:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,17 @@
21
21
  などで調べてみましたが見つからなかった為、皆さんの知恵をお貸しください。
22
22
 
23
23
  また、出来れば極力、プラグインなどは使わずに作りたいです。
24
+
25
+
26
+
27
+ 【追記】
28
+
29
+ 環境:teratailタグと同様
30
+
31
+
32
+
33
+ 場所:「デスクトップ」/「プロジェクトフォルダ」/「リソースフォルダ」直下
34
+
35
+ 実行詳細:4D(フランス社製)から「LAUNCH EXTERNAL PROCESS」コマンドを使い、
36
+
37
+      cscript //nologo+実行ファイル(絶対パス)+OAuth認証URLを引数に持たせて実行