Imacros javascript宏在关闭浏览器后执行命令

时间:2019-03-07 23:18:22

标签: javascript if-statement firefox imacros

我有一个imacros javascript宏,如果要执行命令,它会使用一些宏。

在某些情况下,此imacros javascript自动关闭Firefox,但在关闭Firefox后执行其他命令。

此imacros javascript在互联网上获取当前IP并将其保存在变量中。

检查抓取的IP是否为#EANF#(未提取)并关闭Firefox。

与循环比较当前ip和保存在csv中的ip列表,如果当前ip已被使用,请关闭Firefox。

更新循环号。

更新一些Firefox设置。

运行一个iim宏。

将信息保存在csv中。

打开一个批处理文件。

通过循环检查当前ip,以检查互联网连接是否正常。

此imacros javascript在关闭firefox之后出现问题,因为if语句为true时会运行bat文件,但仅在找不到if语句时才会运行批处理文件。

为什么在关闭Firefox之后运行start.bat?

插入的if会中断脚本的执行并关闭firefox,但请注意,bat文件也已加载。

仅当不使用iimPlayCode(“ TAB CLOSE”)命令关闭firefox时,才需要运行start.bat。

这是代码

////////////////////////////////////////////////////////
/////////////////////// Variables //////////////////////
////////////////////////////////////////////////////////

var jsNewLine = "\n"
var Loops = 500

////////////////////////////////////////////////////////
///////// Clear Cookies And Cache With Imacros /////////
////////////////////////////////////////////////////////

iimPlayCode ("CLEAR")

////////////////////////////////////////////////////////
//////////////////// Ip Current Save ///////////////////
////////////////////////////////////////////////////////

iimPlayCode ("TAB OPEN")
iimPlayCode ("TAB T=2")
iimPlayCode ("URL GOTO=https://ident.me/")
iimPlayCode ("WAIT SECONDS=10")
iimPlayCode ("TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT")

////////////////////////////////////////////////////////
////////////// Save Ip Current In Variable /////////////
////////////////////////////////////////////////////////

IpCurrent = iimGetLastExtract(1);

////////////////////////////////////////////////////////
/////////////////////// Close Tab //////////////////////
////////////////////////////////////////////////////////

iimPlayCode ("TAB CLOSE")

////////////////////////////////////////////////////////
//////////// Ip Current #EANF# Close Browser ///////////
////////////////////////////////////////////////////////

if (IpCurrent == "#EANF#")

{
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("PAUSE")
}

////////////////////////////////////////////////////////
///////////////////////// Loop /////////////////////////
////////////////////////////////////////////////////////

for (i = 0; i < Loops; i ++ )

{

////////////////////////////////////////////////////////
////////////////////// Macro Code //////////////////////
////////////////////////////////////////////////////////

code = "";
code += "CODE:" + jsNewLine
code += "SET !ERRORIGNORE YES" + jsNewLine
code += "SET !LOADCHECK YES" + jsNewLine
code += "SET !REPLAYSPEED FAST" + jsNewLine
code += "SET !POINTER YES" + jsNewLine
code += "SET !TIMEOUT 30" + jsNewLine
code += "SET !TIMEOUT_TAG 0" + jsNewLine
code += "SET !EXTRACT_TEST_POPUP NO" + jsNewLine

code += "SET !DATASOURCE F:\\ip_addresses_used.csv" + jsNewLine
code += "SET !DATASOURCE_COLUMNS 2" + jsNewLine
code += "SET !DATASOURCE_LINE " + i + jsNewLine

code += "ADD !EXTRACT {{!COL1}}" + jsNewLine

iimPlay(code);

////////////////////////////////////////////////////////
/////////////// Save Ip Used In Variable ///////////////
////////////////////////////////////////////////////////

IpUsed = iimGetLastExtract(1);

////////////////////////////////////////////////////////
///////////////////// Display Loop /////////////////////
////////////////////////////////////////////////////////

iimDisplay("Completed Loop " + i)

////////////////////////////////////////////////////////
/// Compare Ip Current (Extracted) With Ip Used (Csv) //
////////////////////////////////////////////////////////

if (IpCurrent == IpUsed)

{
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("PAUSE")
}

}

////////////////////////////////////////////////////////
////////////////// Settings On Firefox /////////////////
////////////////////////////////////////////////////////

prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
prefs.setBoolPref("pdfjs.disabled", true);  // Disable Pdf Js
prefs.setBoolPref("webgl.disabled", true);  // Disable WebGL
prefs.setBoolPref("webgl.enable-webgl2", false);  // Disable WebGL2
prefs.setBoolPref("media.peerconnection.enabled", false); // Disable WebRTC
prefs.setBoolPref("xpinstall.signatures.required", false); // Disable Xpi Addons Signature (For Ras)
prefs.setCharPref("browser.startup.homepage", "about:memory");  // Browser Startup Homepage
prefs.setIntPref("browser.display.use_document_fonts", 0);  // Disable Numbers Of Fonts
prefs.setIntPref("browser.sessionhistory.max_entries", 2); // Disable Tab History

////////////////////////////////////////////////////////
/////////////////////// Run Macro //////////////////////
////////////////////////////////////////////////////////

iimPlay ("mymacro.iim")

////////////////////////////////////////////////////////
///////////////////// Save Ip Used /////////////////////
////////////////////////////////////////////////////////

IpNote = "VM-Views-1";
iimSet("IpCurrent", IpCurrent);  // Need It To Store Variable
iimSet("IpNote", IpNote);  // Need It To Store Variable
iimPlayCode ("SET !EXTRACT {{IpCurrent}}\n ADD !EXTRACT {{!NOW:dd-mm-yyyy_hh-nn}}\n ADD !EXTRACT {{IpNote}}\n SAVEAS TYPE=EXTRACT FOLDER=F:\\ FILE=ip_addresses_used.csv");

////////////////////////////////////////////////////////
///////////////////// Run Bat File /////////////////////
////////////////////////////////////////////////////////

var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("D:\\Programmi Installati\\Macro\\bat\\start.bat");
file.launch();

////////////////////////////////////////////////////////
////////////// Checking Connection Status //////////////
////////////////////////////////////////////////////////

////////////////////////////////////////////////////////
/////////////////////// Variables //////////////////////
////////////////////////////////////////////////////////

var Checks = 100

////////////////////////////////////////////////////////
///////////////////////// Loop /////////////////////////
////////////////////////////////////////////////////////

for (c = 0; c < Checks; c ++ )

{

////////////////////////////////////////////////////////
//////////////////// Ip Current Save ///////////////////
////////////////////////////////////////////////////////

iimPlayCode ("TAB OPEN")
iimPlayCode ("TAB T=2")
iimPlayCode ("URL GOTO=https://ident.me/")
iimPlayCode ("WAIT SECONDS=10")
iimPlayCode ("TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT")

////////////////////////////////////////////////////////
////////////// Save Ip Current In Variable /////////////
////////////////////////////////////////////////////////

IpCurrent = iimGetLastExtract(1);

////////////////////////////////////////////////////////
/////////////////////// Close Tab //////////////////////
////////////////////////////////////////////////////////

iimPlayCode ("TAB CLOSE")
iimPlayCode ("WAIT SECONDS=600")

////////////////////////////////////////////////////////
//////////// Ip Current #EANF# Close Browser ///////////
////////////////////////////////////////////////////////

if (IpCurrent == "#EANF#")

{
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("TAB CLOSE")
iimPlayCode ("PAUSE")
}

}

0 个答案:

没有答案