|
|
@ -217,13 +217,13 @@ TimedToolTip(Text, x="", y="",RemoveAfterTime:=2000, SetWhichToolTip="") {
|
|
|
|
Func_LogErrorsToTextFile(Text){
|
|
|
|
Func_LogErrorsToTextFile(Text){
|
|
|
|
; ErrorLoggingFile := Filepath
|
|
|
|
; ErrorLoggingFile := Filepath
|
|
|
|
FormatTime, TodayDate , YYYYMMDDHH24MISS, yyyyMMdd_hhmmss
|
|
|
|
FormatTime, TodayDate , YYYYMMDDHH24MISS, yyyyMMdd_hhmmss
|
|
|
|
text =
|
|
|
|
text =
|
|
|
|
(
|
|
|
|
(
|
|
|
|
|
|
|
|
|
|
|
|
---------------%TodayDate%---------------
|
|
|
|
---------------%TodayDate%---------------
|
|
|
|
%Text%
|
|
|
|
%Text%
|
|
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
FileAppend, %Text%, %ErrorLoggingFilePath%
|
|
|
|
FileAppend, %Text%, %ErrorLoggingFilePath%
|
|
|
|
}
|
|
|
|
}
|
|
|
|
; -------------------------------/LogErrorsToTextFile-------------------------------
|
|
|
|
; -------------------------------/LogErrorsToTextFile-------------------------------
|
|
|
@ -730,26 +730,6 @@ CheckIfUpdateAvailable(Filepath, CurrentVersion){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FindUpdateChangeLog(Filepath){
|
|
|
|
|
|
|
|
FileRead, ScriptUpdateContents, %Filepath%
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Set Variables
|
|
|
|
|
|
|
|
ChangelogStart =;---Changelog------------------------------------------------------
|
|
|
|
|
|
|
|
ChangelogEnd =;---/Changelog------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Msgbox % "ScriptUpdateContents: " ScriptUpdateContents
|
|
|
|
|
|
|
|
ChangeLog := StrSplit(ScriptUpdateContents, ChangelogStart)
|
|
|
|
|
|
|
|
ChangeLog := ChangeLog[2]
|
|
|
|
|
|
|
|
ChangeLog := StrSplit(ChangeLog, ChangelogEnd)
|
|
|
|
|
|
|
|
ChangeLog := ChangeLog[1]
|
|
|
|
|
|
|
|
Return Changelog
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CheckSeleniumDriver(){
|
|
|
|
CheckSeleniumDriver(){
|
|
|
|
try Driver := SChrome_Get("", ChromeProfile := "") ; open new tab page with with specified profile
|
|
|
|
try Driver := SChrome_Get("", ChromeProfile := "") ; open new tab page with with specified profile
|
|
|
|
catch e {
|
|
|
|
catch e {
|
|
|
@ -790,6 +770,9 @@ SeleniumConnectToActiveTab(IP_Port := "127.0.0.1:9222"){
|
|
|
|
return Driver
|
|
|
|
return Driver
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
CreateArrayOfChromeTabs() {
|
|
|
|
CreateArrayOfChromeTabs() {
|
|
|
|
Message = Creating an Array of All Chrome Tabs
|
|
|
|
Message = Creating an Array of All Chrome Tabs
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
@ -895,10 +878,12 @@ CreateArrayOfChromeTabs() {
|
|
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
InputFilePathIntoOpenWindow(Filepath){
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
InputFilePathIntoOpenWindow(Filepath){
|
|
|
|
; Msgbox % "Filepath: " Filepath
|
|
|
|
; Msgbox % "Filepath: " Filepath
|
|
|
|
Message = Waiting for "Open" window to appear to input filepath into
|
|
|
|
Message = Waiting for "Open" window to appear to input filepath into
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
@ -969,6 +954,10 @@ ActivateChromeTab(URL){
|
|
|
|
|
|
|
|
|
|
|
|
; NumberOfTabLoops := Driver.Windows.Count + 2
|
|
|
|
; NumberOfTabLoops := Driver.Windows.Count + 2
|
|
|
|
loop % NumberOfTabActivationLoops { ; loop through tabs to find matching tab
|
|
|
|
loop % NumberOfTabActivationLoops { ; loop through tabs to find matching tab
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Message = Looping through tabs to activate with: %URLBase%
|
|
|
|
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
|
|
|
|
|
|
try driver.SwitchToNextWindow()
|
|
|
|
try driver.SwitchToNextWindow()
|
|
|
|
|
|
|
|
|
|
|
|
; sleep, 1000
|
|
|
|
; sleep, 1000
|
|
|
@ -988,8 +977,8 @@ ActivateChromeTab(URL){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; / loop through tabs
|
|
|
|
; / loop through tabs
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return "Failed"
|
|
|
|
return "Failed"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*ActivateChromeTab(URL){
|
|
|
|
/*ActivateChromeTab(URL){
|
|
|
@ -1014,8 +1003,12 @@ return "Failed"
|
|
|
|
NavigateFromBaseURLTo(URL,PageTitle := "TodoDeleteme"){
|
|
|
|
NavigateFromBaseURLTo(URL,PageTitle := "TodoDeleteme"){
|
|
|
|
if(!DriverStatus){ ; if not connected to selenium chrome, then re-connect
|
|
|
|
if(!DriverStatus){ ; if not connected to selenium chrome, then re-connect
|
|
|
|
Status := CheckSeleniumDriver()
|
|
|
|
Status := CheckSeleniumDriver()
|
|
|
|
if(Status)
|
|
|
|
if(Status){
|
|
|
|
|
|
|
|
Message = Failed to Connect to Chrome. Please Check for any open dialog boxes or ChromeDriver being out of date.
|
|
|
|
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
Return "Failed"
|
|
|
|
Return "Failed"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; CreateArrayOfChromeTabs() ; moved to the end of checkseleniumdriver()
|
|
|
|
; CreateArrayOfChromeTabs() ; moved to the end of checkseleniumdriver()
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1044,11 +1037,16 @@ NavigateFromBaseURLTo(URL,PageTitle := "TodoDeleteme"){
|
|
|
|
if(!HasSubstringVal(ChromeTabsURLArray, URLBase))
|
|
|
|
if(!HasSubstringVal(ChromeTabsURLArray, URLBase))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
; DevModeMsgBox("Creating new tab")
|
|
|
|
; DevModeMsgBox("Creating new tab")
|
|
|
|
|
|
|
|
Message = Tab for %urlBase% does not exist. Creating new tab with URL: %URL%
|
|
|
|
try, run "%ChromeFilepath%" "%URL%"
|
|
|
|
try, run "%ChromeFilepath%" "%URL%"
|
|
|
|
ChromeTabsURLArray.Push(URL) ; Append the new url to the array
|
|
|
|
ChromeTabsURLArray.Push(URL) ; Append the new url to the array
|
|
|
|
NewTabCreated := 1
|
|
|
|
NewTabCreated := 1
|
|
|
|
sleep, 1000
|
|
|
|
sleep, 1000
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else, {
|
|
|
|
|
|
|
|
Message = %URLBase% is within ChromeTabsURLArray. Trying to Activate.
|
|
|
|
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; message = NewTabCreated: %NewTabCreated%
|
|
|
|
; message = NewTabCreated: %NewTabCreated%
|
|
|
|
; DevModeMsgBox(message)
|
|
|
|
; DevModeMsgBox(message)
|
|
|
@ -1059,6 +1057,25 @@ NavigateFromBaseURLTo(URL,PageTitle := "TodoDeleteme"){
|
|
|
|
try currentURL := driver.url
|
|
|
|
try currentURL := driver.url
|
|
|
|
Message = Failed to switch active tab to %URLBase%. Current tab is: %currentURL%
|
|
|
|
Message = Failed to switch active tab to %URLBase%. Current tab is: %currentURL%
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CheckForAlerts()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; create a new tab and try to switch to it again
|
|
|
|
|
|
|
|
Message = Creating new tab with URL: %URL%
|
|
|
|
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try, run "%ChromeFilepath%" "%URL%"
|
|
|
|
|
|
|
|
ChromeTabsURLArray.Push(URL) ; Append the new url to the array
|
|
|
|
|
|
|
|
NewTabCreated := 1
|
|
|
|
|
|
|
|
sleep, 1000
|
|
|
|
|
|
|
|
status := ActivateChromeTab(URLBase)
|
|
|
|
|
|
|
|
if(Status = "Failed"){
|
|
|
|
|
|
|
|
Message = Failed to activate tab for %urlBase% after 2 atteppts. Chrome stuck on a dialog box of some sort?
|
|
|
|
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
|
|
|
|
Return "Failed"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
; message = ActivateChromeTab Status: %status%
|
|
|
|
; message = ActivateChromeTab Status: %status%
|
|
|
|
; DevModeMsgBox(message)
|
|
|
|
; DevModeMsgBox(message)
|
|
|
@ -1083,16 +1100,14 @@ NavigateFromBaseURLTo(URL,PageTitle := "TodoDeleteme"){
|
|
|
|
try driver.switchToalert().accept()
|
|
|
|
try driver.switchToalert().accept()
|
|
|
|
try driver.Get(URL) ;Open selected URL
|
|
|
|
try driver.Get(URL) ;Open selected URL
|
|
|
|
catch e {
|
|
|
|
catch e {
|
|
|
|
Message = Failed to Navigate to %URL%: Please Check for Any Open Dialogue Boxes
|
|
|
|
Message = Failed to Navigate to URL: %URL%. Please Check for any open dialog boxes or ChromeDriver being out of date.
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
Return "Failed"
|
|
|
|
Return "Failed"
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding
|
|
|
|
try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding
|
|
|
|
}
|
|
|
|
}
|
|
|
|
; msgbox, no error caught
|
|
|
|
|
|
|
|
; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1100,7 +1115,7 @@ NavigateFromBaseURLTo(URL,PageTitle := "TodoDeleteme"){
|
|
|
|
|
|
|
|
|
|
|
|
CheckForAlerts(){
|
|
|
|
CheckForAlerts(){
|
|
|
|
Message = Checking for Any Obstructing Alerts in Chrome
|
|
|
|
Message = Checking for Any Obstructing Alerts in Chrome
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
|
|
|
|
|
|
status := 1
|
|
|
|
status := 1
|
|
|
|
try driver.SwitchToAlert()
|
|
|
|
try driver.SwitchToAlert()
|
|
|
@ -1123,11 +1138,11 @@ CheckForAlerts(){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CheckURLForSubstring(Substring){
|
|
|
|
CheckURLForSubstring(Substring){
|
|
|
|
try CurrentTabURL := driver.url
|
|
|
|
try CurrentTabURL := driver.url
|
|
|
|
|
|
|
|
|
|
|
|
if(InStr(CurrentTabURL, Substring))
|
|
|
|
if(InStr(CurrentTabURL, Substring))
|
|
|
|
return "True"
|
|
|
|
return "True"
|
|
|
|
else,
|
|
|
|
else,
|
|
|
|
return
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1210,9 +1225,11 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
; Save current chrome version to ini file
|
|
|
|
; Save current chrome version to ini file
|
|
|
|
return Driver
|
|
|
|
return Driver
|
|
|
|
}
|
|
|
|
}
|
|
|
|
; -------------------------------/SChrome_Get-------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ShowSeleniumErrorMsgbox(){
|
|
|
|
; -------------------------------/SChrome_Get-------------------------------
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
ShowSeleniumErrorMsgbox(){
|
|
|
|
GetChromeVersionCommand = powershell (Get-Item '%ChromeFilepath%').VersionInfo.ProductVersion
|
|
|
|
GetChromeVersionCommand = powershell (Get-Item '%ChromeFilepath%').VersionInfo.ProductVersion
|
|
|
|
Chromeversion := RunCMD(GetChromeVersionCommand)
|
|
|
|
Chromeversion := RunCMD(GetChromeVersionCommand)
|
|
|
|
ChromeVersion := StrReplace(ChromeVersion, "`n", "")
|
|
|
|
ChromeVersion := StrReplace(ChromeVersion, "`n", "")
|
|
|
@ -1281,11 +1298,13 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
; -------------------------------FileXPro Get File Attributes-------------------------------
|
|
|
|
; -------------------------------FileXPro Get File Attributes-------------------------------
|
|
|
|
;https://www.autohotkey.com/boards/viewtopic.php?t=59882
|
|
|
|
;https://www.autohotkey.com/boards/viewtopic.php?t=59882
|
|
|
|
|
|
|
|
|
|
|
|
Filexpro( sFile := "", Kind := "", P* ) { ; v.90 By SKAN on D1CC @ goo.gl/jyXFo9
|
|
|
|
Filexpro( sFile := "", Kind := "", P* ) { ; v.90 By SKAN on D1CC @ goo.gl/jyXFo9
|
|
|
|
Local
|
|
|
|
Local
|
|
|
|
Static xDetails
|
|
|
|
Static xDetails
|
|
|
|
|
|
|
|
|
|
|
@ -1328,15 +1347,15 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
If Not ( _FileExt ) ; Filepath not resolved
|
|
|
|
If Not ( _FileExt ) ; Filepath not resolved
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
objShl := ComObjCreate("Shell.Application")
|
|
|
|
objShl := ComObjCreate("Shell.Application")
|
|
|
|
objDir := objShl.NameSpace(_Dir)
|
|
|
|
objDir := objShl.NameSpace(_Dir)
|
|
|
|
objItm := objDir.ParseName(_FileExt)
|
|
|
|
objItm := objDir.ParseName(_FileExt)
|
|
|
|
|
|
|
|
|
|
|
|
If ( VarSetCapacity(xDetails) = 0 ) ; Init static variable
|
|
|
|
If ( VarSetCapacity(xDetails) = 0 ) ; Init static variable
|
|
|
|
{
|
|
|
|
{
|
|
|
|
i:=-1, xDetails:={}, xDetails.SetCapacity(309)
|
|
|
|
i:=-1, xDetails:={}, xDetails.SetCapacity(309)
|
|
|
|
|
|
|
|
|
|
|
|
While ( i++ < 309 )
|
|
|
|
While ( i++ < 309 )
|
|
|
@ -1345,17 +1364,17 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
xDetails.Delete("")
|
|
|
|
xDetails.Delete("")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
If ( Kind and Kind <> objDir.GetDetailsOf(objItm,11) ) ; File isn't desired kind
|
|
|
|
If ( Kind and Kind <> objDir.GetDetailsOf(objItm,11) ) ; File isn't desired kind
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
i:=0, nParams:=p.Count(), fex.SetCapacity(nParams + 11)
|
|
|
|
i:=0, nParams:=p.Count(), fex.SetCapacity(nParams + 11)
|
|
|
|
|
|
|
|
|
|
|
|
While ( i++ < nParams )
|
|
|
|
While ( i++ < nParams )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Prop := p[i]
|
|
|
|
Prop := p[i]
|
|
|
|
|
|
|
|
|
|
|
|
If ( (Dot:=InStr(Prop,".")) and (Prop:=(Dot=1 ? "System":"") . Prop) )
|
|
|
|
If ( (Dot:=InStr(Prop,".")) and (Prop:=(Dot=1 ? "System":"") . Prop) )
|
|
|
@ -1369,19 +1388,19 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
fex[Prop] := ObjDir.GetDetailsOf(objItm,PropNum)
|
|
|
|
fex[Prop] := ObjDir.GetDetailsOf(objItm,PropNum)
|
|
|
|
Continue
|
|
|
|
Continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fex.SetCapacity(-1)
|
|
|
|
fex.SetCapacity(-1)
|
|
|
|
Return fex
|
|
|
|
Return fex
|
|
|
|
|
|
|
|
|
|
|
|
} ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
} ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; GuiButtonIcon
|
|
|
|
; GuiButtonIcon
|
|
|
|
;------------------------------------------------
|
|
|
|
;------------------------------------------------
|
|
|
|
GuiButtonIcon(Handle, File, Index := 1, Options := "")
|
|
|
|
GuiButtonIcon(Handle, File, Index := 1, Options := "")
|
|
|
|
{
|
|
|
|
{
|
|
|
|
RegExMatch(Options, "i)w\K\d+", W), (W="") ? W := 16 :
|
|
|
|
RegExMatch(Options, "i)w\K\d+", W), (W="") ? W := 16 :
|
|
|
|
RegExMatch(Options, "i)h\K\d+", H), (H="") ? H := 16 :
|
|
|
|
RegExMatch(Options, "i)h\K\d+", H), (H="") ? H := 16 :
|
|
|
|
RegExMatch(Options, "i)s\K\d+", S), S ? W := H := S :
|
|
|
|
RegExMatch(Options, "i)s\K\d+", S), S ? W := H := S :
|
|
|
@ -1400,13 +1419,13 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
NumPut( A, button_il, 16 + Psz, DW ) ; Alignment
|
|
|
|
NumPut( A, button_il, 16 + Psz, DW ) ; Alignment
|
|
|
|
SendMessage, BCM_SETIMAGELIST := 5634, 0, &button_il,, AHK_ID %Handle%
|
|
|
|
SendMessage, BCM_SETIMAGELIST := 5634, 0, &button_il,, AHK_ID %Handle%
|
|
|
|
return IL_Add( normal_il, File, Index )
|
|
|
|
return IL_Add( normal_il, File, Index )
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; \GuiButtonIcon
|
|
|
|
; \GuiButtonIcon
|
|
|
|
;------------------------------------------------
|
|
|
|
;------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ToggleTestingMode(){
|
|
|
|
ToggleTestingMode(){
|
|
|
|
|
|
|
|
|
|
|
|
IniRead, TestingMode, Settings.ini, General, TestingMode, 0
|
|
|
|
IniRead, TestingMode, Settings.ini, General, TestingMode, 0
|
|
|
|
; Msgbox % "TestingMode: " TestingMode
|
|
|
|
; Msgbox % "TestingMode: " TestingMode
|
|
|
@ -1414,9 +1433,9 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
IniWrite, 0, Settings.ini, General, TestingMode
|
|
|
|
IniWrite, 0, Settings.ini, General, TestingMode
|
|
|
|
else,
|
|
|
|
else,
|
|
|
|
IniWrite, 1, Settings.ini, General, TestingMode
|
|
|
|
IniWrite, 1, Settings.ini, General, TestingMode
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ToggleManualSubmit(){
|
|
|
|
ToggleManualSubmit(){
|
|
|
|
|
|
|
|
|
|
|
|
IniRead, ManualSubmit, Settings.ini, General, ManualSubmit, 0
|
|
|
|
IniRead, ManualSubmit, Settings.ini, General, ManualSubmit, 0
|
|
|
|
; Msgbox % "TestingMode: " TestingMode
|
|
|
|
; Msgbox % "TestingMode: " TestingMode
|
|
|
@ -1424,10 +1443,10 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
IniWrite, 0, Settings.ini, General, ManualSubmit
|
|
|
|
IniWrite, 0, Settings.ini, General, ManualSubmit
|
|
|
|
else,
|
|
|
|
else,
|
|
|
|
IniWrite, 1, Settings.ini, General, ManualSubmit
|
|
|
|
IniWrite, 1, Settings.ini, General, ManualSubmit
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ToggleDevMode(){
|
|
|
|
ToggleDevMode(){
|
|
|
|
|
|
|
|
|
|
|
|
IniRead, DevMode, Settings.ini, General, DevMode, 0
|
|
|
|
IniRead, DevMode, Settings.ini, General, DevMode, 0
|
|
|
|
; Msgbox % "TestingMode: " TestingMode
|
|
|
|
; Msgbox % "TestingMode: " TestingMode
|
|
|
@ -1435,10 +1454,10 @@ SChrome_Get(URL := "", Profile := "Profile 1", IP_Port := "127.0.0.1:9222"){
|
|
|
|
IniWrite, 0, Settings.ini, General, DevMode
|
|
|
|
IniWrite, 0, Settings.ini, General, DevMode
|
|
|
|
else,
|
|
|
|
else,
|
|
|
|
IniWrite, 1, Settings.ini, General, DevMode
|
|
|
|
IniWrite, 1, Settings.ini, General, DevMode
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FormatTextToJSText(Var){ ; Replaces AHK newline characters with javascript ones
|
|
|
|
FormatTextToJSText(Var){ ; Replaces AHK newline characters with javascript ones
|
|
|
|
/*\b Backspace
|
|
|
|
/*\b Backspace
|
|
|
|
\f Form Feed
|
|
|
|
\f Form Feed
|
|
|
|
\n New Line - done
|
|
|
|
\n New Line - done
|
|
|
@ -1638,8 +1657,8 @@ Selenium_LoopToClickID(IDName,NumOfLoops:=1,SleepLength:=1000){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sleep, %SleepLength%
|
|
|
|
sleep, %SleepLength%
|
|
|
|
Continue
|
|
|
|
Continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1653,8 +1672,8 @@ Selenium_LoopToClickName(ElementName,NumOfLoops:=1,SleepLength:=1000){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sleep, %SleepLength%
|
|
|
|
sleep, %SleepLength%
|
|
|
|
Continue
|
|
|
|
Continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1668,8 +1687,8 @@ Selenium_LoopToSendValueToID(IDName,NumOfLoops:=1,SleepLength:=1000,StringTextCo
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sleep, %SleepLength%
|
|
|
|
sleep, %SleepLength%
|
|
|
|
Continue
|
|
|
|
Continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
; Selenium_LoopToSendValueByName(ElementName:="NAME",NumOfLoops:=2,SleepLength:=1000,StringTextContent:="TEXT")
|
|
|
|
; Selenium_LoopToSendValueByName(ElementName:="NAME",NumOfLoops:=2,SleepLength:=1000,StringTextContent:="TEXT")
|
|
|
@ -1712,8 +1731,8 @@ Selenium_LoopToClickXpath(Xpath,NumOfLoops:=1,SleepLength:=1000){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sleep, %SleepLength%
|
|
|
|
sleep, %SleepLength%
|
|
|
|
Continue
|
|
|
|
Continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1752,8 +1771,8 @@ Selenium_LoopToClearXpath(Xpath,NumOfLoops:=1,SleepLength:=1000){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sleep, %SleepLength%
|
|
|
|
sleep, %SleepLength%
|
|
|
|
Continue
|
|
|
|
Continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Return
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1762,109 +1781,117 @@ Selenium_LoopToClearXpath(Xpath,NumOfLoops:=1,SleepLength:=1000){
|
|
|
|
|
|
|
|
|
|
|
|
; -------------------------------Javascript-------------------------------
|
|
|
|
; -------------------------------Javascript-------------------------------
|
|
|
|
ReturnAndDisplayJSData(jsref){
|
|
|
|
ReturnAndDisplayJSData(jsref){
|
|
|
|
; msgbox, here goes
|
|
|
|
; msgbox, here goes
|
|
|
|
; https://www.w3schools.com/jsref/dom_obj_all.asp
|
|
|
|
; https://www.w3schools.com/jsref/dom_obj_all.asp
|
|
|
|
; -----TEXT CONTENT-----
|
|
|
|
; -----TEXT CONTENT-----
|
|
|
|
js = return %jsref%.textContent;
|
|
|
|
js = return %jsref%.textContent;
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
MsgBox 0x3,.TextContent:,%status%
|
|
|
|
MsgBox 0x3,.TextContent:,%status%
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
|
|
|
|
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
Clipboard := TextForClip
|
|
|
|
Clipboard := TextForClip
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; -----VALUE-----
|
|
|
|
|
|
|
|
js = return %jsref%.value;
|
|
|
|
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; -----VALUE-----
|
|
|
|
|
|
|
|
js = return %jsref%.value;
|
|
|
|
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
|
|
|
|
MsgBox 0x3,.value:,%status%
|
|
|
|
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
|
|
|
|
MsgBox 0x3,.value:,%status%
|
|
|
|
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
|
|
|
|
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
Clipboard := TextForClip
|
|
|
|
Clipboard := TextForClip
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; -----INNERTEXT-----
|
|
|
|
|
|
|
|
js = return %jsref%.innerText;
|
|
|
|
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; -----INNERTEXT-----
|
|
|
|
|
|
|
|
js = return %jsref%.innerText;
|
|
|
|
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
|
|
|
|
MsgBox 0x3, .innerText,%status%
|
|
|
|
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
|
|
|
|
MsgBox 0x3, .innerText,%status%
|
|
|
|
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
|
|
|
|
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
Clipboard := TextForClip
|
|
|
|
Clipboard := TextForClip
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; -----OuterText-----
|
|
|
|
; -----OuterText-----
|
|
|
|
js = return %jsref%.outerText;
|
|
|
|
js = return %jsref%.outerText;
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
MsgBox 0x3, .outerText,%status%
|
|
|
|
MsgBox 0x3, .outerText,%status%
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
|
|
|
|
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
Clipboard := TextForClip
|
|
|
|
Clipboard := TextForClip
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;-----innerHTML-----
|
|
|
|
;-----innerHTML-----
|
|
|
|
js = return %jsref%.innerHTML;
|
|
|
|
js = return %jsref%.innerHTML;
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
MsgBox 0x3, .innerHTML,%status%
|
|
|
|
MsgBox 0x3, .innerHTML,%status%
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
|
|
|
|
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
TextForClip = js = %js% `n try, status := driver.executeScript(js)
|
|
|
|
Clipboard := TextForClip
|
|
|
|
Clipboard := TextForClip
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
} Else IfMsgBox Cancel, {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; -----outerHTML-----
|
|
|
|
|
|
|
|
js = return %jsref%.outerHTML;
|
|
|
|
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; -----outerHTML-----
|
|
|
|
|
|
|
|
js = return %jsref%.outerHTML;
|
|
|
|
|
|
|
|
try status := driver.executeScript(js)
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
|
|
|
|
MsgBox 0x3, .outerHTML,%status%
|
|
|
|
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMessage(0x44, "OnMsgBoxJSReturnData")
|
|
|
|
|
|
|
|
MsgBox 0x3, .outerHTML,%status%
|
|
|
|
|
|
|
|
OnMessage(0x44, "")
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
IfMsgBox Yes,{
|
|
|
|
|
|
|
|
|
|
|
|
} Else IfMsgBox No, {
|
|
|
|
} Else IfMsgBox No, {
|
|
|
@ -1876,8 +1903,8 @@ IfMsgBox Yes,{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
*/
|
|
|
|
OnMsgBoxJSReturnData() {
|
|
|
|
OnMsgBoxJSReturnData() {
|
|
|
|
DetectHiddenWindows, On
|
|
|
|
DetectHiddenWindows, On
|
|
|
|
Process, Exist
|
|
|
|
Process, Exist
|
|
|
|