我有一个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")
}
}