質問が要求するように実際には結婚していませんが、コメントの @o_nix はhttps://github.com/idobatter/node-win32oleを提案しました。
このモジュールは、Google からここにたどり着いた人々の多くの問題を解決することをお勧めします (私が行ったように)。こちらの npm からも入手できます: https://www.npmjs.com/package/win32ole
モジュールには、次のようなかなりの数の例もあり
ます。
var win32ole = require('win32ole');
. . .
var withReadFile = function(filename, callback){
var fso = new ActiveXObject('Scripting.FileSystemObject');
var fullpath = fso.GetAbsolutePathName(filename);
var file = fso.OpenTextFile(fullpath, 1, false); // open to read
try{
callback(file);
}finally{
file.Close();
}
};
var withEachLine = function(filename, callback){
withReadFile(filename, function(file){
// while(file.AtEndOfStream != true) // It works. (without unary operator !)
// while(!file.AtEndOfStream) // It does not work.
while(!file.AtEndOfStream._) // *** It works. oops!
callback(file.ReadLine());
});
};
withEachLine(testfile, function(line){
console.log(line);
});
したがって、私にとって、これは古い WSH スクリプトを組み合わせるのと同じくらい良いことです。もちろん微調整も必要ですが、WSH とはお別れです。
より具体的には、当面の質問に対して、これはデモ IE スクリプトのスニペットです:
https://github.com/idobatter/node-win32ole/blob/master/examples/ie_sample.js
var win32ole = require('win32ole');
. . .
var ie = new ActiveXObject('InternetExplorer.Application');
ie.Visible = true;
for(var i = 0; i < uris.length; ++i){
console.log(uris[i]);
ie.Navigate(uris[i]);
win32ole.sleep(15000, true, true);
}
ie.Quit();