init commit
This commit is contained in:
commit
2695b41399
149
FileList/FileList.au3
Normal file
149
FileList/FileList.au3
Normal file
@ -0,0 +1,149 @@
|
||||
#NoTrayIcon
|
||||
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
|
||||
#AutoIt3Wrapper_Outfile_x64=FileList.exe
|
||||
#AutoIt3Wrapper_UseUpx=y
|
||||
#AutoIt3Wrapper_UseX64=y
|
||||
#AutoIt3Wrapper_Change2CUI=y
|
||||
#AutoIt3Wrapper_Res_Comment=Summary File List Of Specified Folders
|
||||
#AutoIt3Wrapper_Res_Description=Summary File List Of Specified Folders
|
||||
#AutoIt3Wrapper_Res_Fileversion=1.2.0.0
|
||||
#AutoIt3Wrapper_Res_ProductVersion=1.2.0.0
|
||||
#AutoIt3Wrapper_Res_LegalCopyright=TE / Vayne Tan
|
||||
#AutoIt3Wrapper_Res_Language=1033
|
||||
#AutoIt3Wrapper_Res_Field=CompanyName|Wistron InfoComm (Chongqing) Co., Ltd.
|
||||
#AutoIt3Wrapper_Res_Field=ProductName|FileList.exe
|
||||
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
|
||||
;Change History
|
||||
;1.1.0.0 Add check ping result of each hosts.
|
||||
;1.2.0.0 Fixed an array out of bounds issue.
|
||||
;#AutoIt3Wrapper_Icon=App.ico
|
||||
|
||||
#Include <File.au3>
|
||||
#Include <String.au3>
|
||||
|
||||
Global $gSRC = @ScriptDir, $gTYP = 0, $gFTR = '*||', $gOUT = @ScriptDir&'\Result.txt'
|
||||
Global $IniFile = StringTrimRight(@ScriptName, 4) & '.ini'
|
||||
Global $gUSR = IniRead($IniFile, 'Settings', 'DefaultUser', 'Administrator')
|
||||
Global $gPWD = IniRead($IniFile, 'Settings', 'DefaultPassword', 'CASPER')
|
||||
Global $Configs = IniReadSectionNames($IniFile)
|
||||
|
||||
|
||||
__Main__()
|
||||
|
||||
Func __Main__()
|
||||
|
||||
Local $SRC, $TYP, $FTR, $OUT, $USR, $PWD
|
||||
|
||||
If $CMDLINE[0] >= 1 Then
|
||||
|
||||
If $CMDLINE[1] = '/?' Then
|
||||
__Usage__()
|
||||
Exit
|
||||
EndIf
|
||||
|
||||
For $i = 1 To $CMDLINE[0] Step 1
|
||||
If StringLeft($CMDLINE[$i], 5) = '/SRC:' Then $SRC = StringTrimLeft($CMDLINE[$i], 5)
|
||||
If StringLeft($CMDLINE[$i], 5) = '/TYP:' Then $TYP = StringTrimLeft($CMDLINE[$i], 5)
|
||||
If StringLeft($CMDLINE[$i], 5) = '/FTR:' Then $FTR = StringTrimLeft($CMDLINE[$i], 5)
|
||||
If StringLeft($CMDLINE[$i], 5) = '/OUT:' Then $OUT = StringTrimLeft($CMDLINE[$i], 5)
|
||||
|
||||
If StringLeft($CMDLINE[$i], 5) = '/USR:' Then
|
||||
$USR = StringTrimLeft($CMDLINE[$i], 5)
|
||||
Else
|
||||
$USR = $gUSR
|
||||
EndIf
|
||||
|
||||
If StringLeft($CMDLINE[$i], 5) = '/PWD:' Then
|
||||
$PWD = StringTrimLeft($CMDLINE[$i], 5)
|
||||
Else
|
||||
$PWD = $gPWD
|
||||
EndIf
|
||||
Next
|
||||
CheckFileExistence($SRC, $TYP, $FTR, $OUT, $USR, $PWD)
|
||||
Return
|
||||
Else
|
||||
If Not IsArray($Configs) Then
|
||||
ConsoleWrite(">>> Configuration Format Error !" &@CRLF)
|
||||
Exit
|
||||
EndIf
|
||||
For $i = 1 To $Configs[0] Step 1
|
||||
If $Configs[$i] <> 'Settings' And StringLeft($Configs[$i], 6) = 'Config' Then
|
||||
$SRC = StringStripWS(IniRead($IniFile, $Configs[$i], "SourcePath", $gSRC), 2)
|
||||
$TYP = Int(IniRead($IniFile, $Configs[$i], "ReturnType", $gTYP))
|
||||
$FTR = IniRead($IniFile, $Configs[$i], "Filter", $gFTR)
|
||||
$OUT = IniRead($IniFile, $Configs[$i], "Output", $gOUT)
|
||||
|
||||
If StringLeft($OUT, 2) = '.\' Then
|
||||
$OUT = @ScriptDir&'\'&StringTrimLeft($OUT, 2)
|
||||
EndIf
|
||||
|
||||
$USR = IniRead($IniFile, $Configs[$i], "User", $gUSR)
|
||||
$PWD = IniRead($IniFile, $Configs[$i], "Password", $gPWD)
|
||||
|
||||
CheckFileExistence($SRC, $TYP, $FTR, $OUT, $USR, $PWD)
|
||||
EndIf
|
||||
Next
|
||||
EndIf
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func CheckFileExistence($SourcePath=$gSRC, $iType=$gTYP, $Filter=$gFTR, $OutFile=$gOUT, $UserName=$gUSR, $PassWord=$gPWD)
|
||||
;iType = 0 : Enum Files and Folders.
|
||||
;iType = 1 : Enum Files.
|
||||
;iType = 2 : Enum Folders.
|
||||
;$SourcePath = '\\' &$SourcePath &'\Image\Zeus\'
|
||||
Local $IP, $Check = 0, $Flag = 0
|
||||
If StringLeft($SourcePath, 2) = '\\' Then
|
||||
$IP = _StringBetween($SourcePath, '\\', '\')
|
||||
If IsArray($IP) Then
|
||||
$Check = Ping($IP[0], 1000)
|
||||
If $Check = 0 Then
|
||||
ConsoleWrite('Ping Host Error: ' & $IP[0] &@CRLF)
|
||||
Return False
|
||||
EndIf
|
||||
EndIf
|
||||
$Flag = DriveMapAdd('', $SourcePath, 0, $UserName, $PassWord)
|
||||
EndIf
|
||||
|
||||
If FileExists($OutFile) Then FileDelete($OutFile)
|
||||
|
||||
Local $RESULT, $fOpen
|
||||
Local $RESULT = _FileListToArrayRec($SourcePath, $Filter, $iType, 1, 1)
|
||||
|
||||
If IsArray($RESULT) Then
|
||||
ConsoleWrite(@CRLF& '-----> Source: ' &$SourcePath &@CRLF &@CRLF)
|
||||
;$RESULT = _ArraySearch($DirList, $Target, 0, 0, 0, 1)
|
||||
$fOpen = FileOpen($OutFile, 9)
|
||||
If $fOpen = -1 Then
|
||||
FileClose($fOpen)
|
||||
ConsoleWrite('Open File Failed: ' &$OutFile &@CRLF)
|
||||
Return False
|
||||
EndIf
|
||||
For $i = 1 To $RESULT[0]
|
||||
ConsoleWrite($RESULT[$i] &@CRLF)
|
||||
FileWrite($fOpen, $RESULT[$i] &@CRLF)
|
||||
Next
|
||||
FileClose($fOpen)
|
||||
Return True
|
||||
EndIf
|
||||
|
||||
If $Flag = 1 Then DriveMapDel($SourcePath)
|
||||
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func __Usage__()
|
||||
Local $Tips = @CRLF & "FileList.exe V1.0" &@CRLF &@CRLF _
|
||||
& "Parameters: " &@CRLF _
|
||||
& StringFormat('%-20s%-s\r\n', '/SRC:[Source Path]', 'Initial path used to generate filelist.') _
|
||||
& StringFormat('%-20s%-s\r\n', '/OUT:[Result File]', 'Initial path or file name used to write result.') _
|
||||
& StringFormat('%-20s%-s\r\n', '/FTR:[Filter]', 'Filter, Include|Exclude|Exclude_Folders, Default="*||".') _
|
||||
& StringFormat('%-20s%-s\r\n', '/TYP:[Return Type]', '0: Files & Folders, 1: Files Only, 2: Folders Only.') _
|
||||
& StringFormat('%-20s%-s\r\n', '/USR:[Remote User]', 'Username for remote path (When SRC start with "\\").') _
|
||||
& StringFormat('%-20s%-s\r\n', '/PWD:[Remote Pwd]', 'Password for remote path (When SRC start with "\\").') &@CRLF
|
||||
ConsoleWrite($Tips)
|
||||
Return
|
||||
EndFunc
|
||||
|
BIN
FileList/FileList.exe
Normal file
BIN
FileList/FileList.exe
Normal file
Binary file not shown.
70
FileList/FileList.ini
Normal file
70
FileList/FileList.ini
Normal file
@ -0,0 +1,70 @@
|
||||
// ReturnType:
|
||||
# 0: List Files and Folders (Default).
|
||||
# 1: List Only Files.
|
||||
# 2: List Only Folders.
|
||||
// Filter
|
||||
# Include|Exclude|Exclude_Folders
|
||||
# Default=*||
|
||||
|
||||
[Config-1]
|
||||
SourcePath=\\172.168.0.2\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.2.TXT
|
||||
#User=Administrator
|
||||
#Password=CASPER
|
||||
|
||||
[Config-2]
|
||||
SourcePath=\\172.168.0.3\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.3.TXT
|
||||
|
||||
[Config-3]
|
||||
SourcePath=\\172.168.0.4\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.4.TXT
|
||||
|
||||
[Config-4]
|
||||
SourcePath=\\172.168.0.5\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.5.TXT
|
||||
|
||||
[Config-5]
|
||||
SourcePath=\\172.168.0.6\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.6.TXT
|
||||
|
||||
[Config-6]
|
||||
SourcePath=\\172.168.0.12\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.12.TXT
|
||||
|
||||
[Config-7]
|
||||
SourcePath=\\172.168.0.13\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.13.TXT
|
||||
|
||||
[Config-8]
|
||||
SourcePath=\\172.168.0.14\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.14.TXT
|
||||
|
||||
[Config-9]
|
||||
SourcePath=\\172.168.0.15\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.15.TXT
|
||||
|
||||
[Config-10]
|
||||
SourcePath=\\172.168.0.16\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.16.TXT
|
||||
|
||||
[Config-11]
|
||||
SourcePath=\\172.168.0.20\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.20.TXT
|
||||
|
||||
[Config-12]
|
||||
SourcePath=\\172.168.0.7\Image\Zeus
|
||||
ReturnType=2
|
||||
Output=.\TMP\172.168.0.7.TXT
|
||||
|
BIN
FileList/ShowConsole.exe
Normal file
BIN
FileList/ShowConsole.exe
Normal file
Binary file not shown.
19
FileList/SummaryImageList.bat
Normal file
19
FileList/SummaryImageList.bat
Normal file
@ -0,0 +1,19 @@
|
||||
@Echo Off
|
||||
Title Summary_Image_List
|
||||
cd /d %~dp0
|
||||
ShowConsole.exe MINIMIZED
|
||||
|
||||
::::::::::::::::::::::::::::::
|
||||
SET TempDir=%~dp0TMP
|
||||
SET TargetDir=D:\Vol1\Message\PXE\~ImageMap
|
||||
::::::::::::::::::::::::::::::
|
||||
|
||||
if not exist %TempDir% md %TempDir%
|
||||
if exist %TempDir%\*.* del /f /q %TempDir%\*.*
|
||||
|
||||
FileList.exe
|
||||
|
||||
Timeout /t 2 /nobreak >nul
|
||||
|
||||
Copy %TempDir%\*.txt %TargetDir%\ /Y
|
||||
|
810
LoadBalanceSystem.au3
Normal file
810
LoadBalanceSystem.au3
Normal file
@ -0,0 +1,810 @@
|
||||
#NoTrayIcon
|
||||
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
|
||||
#AutoIt3Wrapper_Icon=LB.ico
|
||||
#AutoIt3Wrapper_Outfile=LoadBalanceSystem32.exe
|
||||
#AutoIt3Wrapper_Outfile_x64=LoadBalanceSystem.exe
|
||||
#AutoIt3Wrapper_UseUpx=y
|
||||
#AutoIt3Wrapper_UseX64=y
|
||||
#AutoIt3Wrapper_Res_Comment=SMB Load Balance
|
||||
#AutoIt3Wrapper_Res_Description=SMB Load Balance
|
||||
#AutoIt3Wrapper_Res_Fileversion=2.2.0.0
|
||||
#AutoIt3Wrapper_Res_ProductVersion=2.2.0.0
|
||||
#AutoIt3Wrapper_Res_LegalCopyright=TE / Vayne Tan
|
||||
#AutoIt3Wrapper_Res_Language=1033
|
||||
#AutoIt3Wrapper_Res_Field=Compile Date|%DATE% %TIME%
|
||||
#AutoIt3Wrapper_Res_Field=CompanyName|WCQTE
|
||||
#AutoIt3Wrapper_Res_Field=ProductName|LoadBalanceSystem.exe
|
||||
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
|
||||
;Change History:
|
||||
; V1.1 Fixed Wrong Date/Time at Log Files.
|
||||
; V1.2 Fixed Memory Leak Issue.
|
||||
;20180712 V1.3 Delete Bad Format of Request File Name: .RRR
|
||||
;20180714 V1.4 Randomize Muti-Network or Equal Connection Servers when $EqualSort = 1
|
||||
;20180717 V1.4.0.1 Fixed Wrong Keywords at Log Files.
|
||||
;20180718 V1.4.0.2 Open Src/Rst Folder when click Src/Rst Label on GUI.
|
||||
;20180731 V1.4.0.3 Change CheckConfigs Logic.
|
||||
;20180802 V1.4.0.4 Add check existence of ini file @ CheckConfigs() function.
|
||||
;20180915 V1.5.0.0 Optimised program logic.
|
||||
;20181217 V1.5.0.5 Optimised Logs & GUI text.
|
||||
;20190225 V1.6.0.0 Add ResponseFormat = 1 ==> .ini file format; 2 ==> .bat file format. (Set Server=xxx)
|
||||
;20190302 V1.6.0.0 Remove IMAGE=$IMAGE from GUI & LogFile when WorkMode=1
|
||||
;20190302 V1.7.0.0 SortingWaitingConnection() function support ResponseFormat=2 (.bat file)
|
||||
;20200220 V1.8.0.0 Rename confused variables, add open @ScriptDir while click WorkMode/ServerNum label.
|
||||
;20200619 V2.0.0.0 Add invoke warning interface while exceptions happen.
|
||||
;20200830 V2.1.0.0 Add specify log file path and error file path by config file.
|
||||
;20200830 V2.2.0.0 Optimise GUI.
|
||||
|
||||
#Include <Date.au3>
|
||||
#Include <Math.au3>
|
||||
#Include <File.au3>
|
||||
#Include <Array.au3>
|
||||
#Include <NetShare.au3>
|
||||
#Include <Constants.au3>
|
||||
#Include <GuiEdit.au3>
|
||||
#Include <EditConstants.au3>
|
||||
#Include <StaticConstants.au3>
|
||||
#Include <GuiListBox.au3>
|
||||
#Include <GuiConstantsEx.au3>
|
||||
#Include <WindowsConstants.au3>
|
||||
#Include <NetShare.au3>
|
||||
|
||||
Break(0)
|
||||
Opt("GUICloseOnESC", 0)
|
||||
Opt("GUIOnEventMode", 1)
|
||||
Opt("GUIResizeMode", 1)
|
||||
|
||||
Global $AppName = "LoadBalanceSystem", $AppVer = "V2.2"
|
||||
Global $AppFullName = $AppName&" "&$AppVer
|
||||
|
||||
Global $SuffixRRR, $SuffixAAA, $SuffixList, $ChkCfg = "Starting ..."
|
||||
Global $Datas[1][5], $DatasCopy, $idGUI, $idMessage, $idError
|
||||
Global $idFolderGroup, $idSrcLbl, $idRstLbl, $idListLbl
|
||||
Global $idStatusGroup, $idSvrNum, $idWorkMode, $idChkCfg
|
||||
|
||||
Global $IniFile = StringTrimRight(@ScriptName, 4) & ".ini"
|
||||
|
||||
Global $ID = IniRead($IniFile, "System", "ID", "SN")
|
||||
Global $WorkMode = Int(IniRead($IniFile, "System", "WorkMode", "0"))
|
||||
Global $ServerNum = Int(IniRead($IniFile, "System", "ServerNum", "0"))
|
||||
Global $EqualSort = Int(IniRead($IniFile, "System", "EqualSort", "0"))
|
||||
Global $TimeoutCheck = Int(IniRead($IniFile, "System", "TimeoutCheck", "0"))
|
||||
Global $TimeoutMinutes = Int(IniRead($IniFile, "System", "TimeoutMinutes", "5"))
|
||||
Global $ResponseFormat = Int(IniRead($IniFile, "System", "ResponseFormat", "1"))
|
||||
|
||||
;Variables for Folder Group
|
||||
Global $SrcFolder = StringStripWS(IniRead($IniFile, "Folders", "SourceFolder", ""), 8)
|
||||
Global $RstFolder = StringStripWS(IniRead($IniFile, "Folders", "ResultFolder", ""), 8)
|
||||
Global $ListFolder = StringStripWS(IniRead($IniFile, "Folders", "FileListFolder", ""), 8)
|
||||
Global $LogFilePath = StringStripWS(IniRead($IniFile, "Folders", "LogFilePath", @ScriptDir & "\~LOG"), 8)
|
||||
Global $ErrFilePath = StringStripWS(IniRead($IniFile, "Folders", "ErrFilePath", @ScriptDir & "\~ERR"), 8)
|
||||
;Variables for Warning Action
|
||||
Global $Action = IniRead($IniFile, "Warning", "Action", "0")
|
||||
Global $WarningID = IniRead($IniFile, "Warning", "WarningID", "LoadBalance")
|
||||
Global $Interface = IniRead($IniFile, "Warning", "Interface", "LBWarning.bat")
|
||||
Global $Interval = Int(IniRead($IniFile, "Warning", "Interval", "900"))
|
||||
Global $LastErrTime = IniRead($IniFile, "Warning", "LastErrTime", "0000/00/00 00:00:00")
|
||||
|
||||
|
||||
__Main__()
|
||||
|
||||
Func __Main__()
|
||||
If FileExists($LogFilePath) = 0 Then DirCreate($LogFilePath)
|
||||
If FileExists($ErrFilePath) = 0 Then DirCreate($ErrFilePath)
|
||||
|
||||
AppendLogs('LOG', $AppFullName & " Starting ...")
|
||||
AppendLogs('LOG', "Work Mode: " & $WorkMode)
|
||||
|
||||
;If WinExists($AppFullName) Then WinKill($AppFullName)
|
||||
If WinExists($AppFullName) Then
|
||||
WinActivate($AppFullName)
|
||||
Exit
|
||||
EndIf
|
||||
|
||||
AutoItWinSetTitle($AppFullName)
|
||||
|
||||
CreateGUI()
|
||||
|
||||
Local $Chk = CheckConfigs()
|
||||
If $Chk = True Then
|
||||
GUICtrlSetData($idChkCfg, "Runing")
|
||||
GUICtrlSetColor($idChkCfg, 0x008000)
|
||||
Else
|
||||
While 1
|
||||
;ConsoleWrite("Config Error !" &@CRLF)
|
||||
Sleep(1000)
|
||||
WEnd
|
||||
EndIf
|
||||
|
||||
LoadingBalance()
|
||||
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func CreateGUI()
|
||||
|
||||
Local $lblHeight = 20
|
||||
$idGUI = GUICreate($AppFullName, 800, 600, -1, -1, BitOR($WS_SYSMENU, $WS_CAPTION, $WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
GUISetFont(12, 0, 0, "Fixedsys")
|
||||
|
||||
;Folder Group
|
||||
$idFolderGroup = GUICtrlCreateGroup("Folder", 15, 10, 330, 110)
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
|
||||
GUICtrlCreateLabel("SrcFolder:", 20, 30, 110, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
GUICtrlCreateLabel("DstFolder:", 20, 60, 110, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
GUICtrlCreateLabel("ListFolder:", 20, 90, 110, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
$idSrcLbl = GUICtrlCreateLabel($SrcFolder, 105, 30, 230, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetColor(-1,0x0000FF)
|
||||
GUICtrlSetBkColor(-1, 0xDDDDDD)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
$idRstLbl = GUICtrlCreateLabel($RstFolder, 105, 60, 230, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetColor(-1,0x0000FF)
|
||||
GUICtrlSetBkColor(-1, 0xDDDDDD)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
$idListLbl = GUICtrlCreateLabel($ListFolder, 105, 90, 230, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetColor(-1,0x0000FF)
|
||||
GUICtrlSetBkColor(-1, 0xDDDDDD)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
GUICtrlCreateGroup("", -99, -99, 1, 1)
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
|
||||
;Status Group
|
||||
$idStatusGroup = GUICtrlCreateGroup("Status", 355, 10, 330, 110)
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
|
||||
GUICtrlCreateLabel("WorkMode:", 360, 30, 110, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
GUICtrlCreateLabel("ServerNum:", 360, 60, 110, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
GUICtrlCreateLabel("AppStatus:", 360, 90, 110, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
$idWorkMode = GUICtrlCreateLabel($WorkMode, 445, 30, 230, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetColor(-1,0x0000FF)
|
||||
GUICtrlSetBkColor(-1, 0xDDDDDD)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
$idSvrNum = GUICtrlCreateLabel($ServerNum, 445, 60, 230, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetColor(-1,0x0000FF)
|
||||
GUICtrlSetBkColor(-1, 0xDDDDDD)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
$idChkCfg = GUICtrlCreateLabel($ChkCfg, 445, 90, 230, $lblHeight, BitOR($SS_LEFT, $SS_CENTERIMAGE))
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
|
||||
GUICtrlSetColor(-1,0xFF0000)
|
||||
GUICtrlSetBkColor(-1, 0xDDDDDD)
|
||||
GUICtrlSetFont(-1, 10, 0, 0, 'Consolas')
|
||||
|
||||
GUICtrlCreateGroup("", -99, -99, 1, 1)
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
|
||||
;Message Table
|
||||
GUICtrlCreateTab(15, 130, 770, 460)
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
|
||||
GUICtrlCreateTabItem("Message")
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
$idMessage = GUICtrlCreateEdit("", 20, 160, 760, 425, BitOR($WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY)) ;$WS_HSCROLL,
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
GUIctrlSetFont(-1, 10, 0, 0, "Consolas")
|
||||
|
||||
;Error Table
|
||||
GUICtrlCreateTab(15, 130, 670, 360)
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
GUICtrlCreateTabItem("Error")
|
||||
$idError = GUICtrlCreateEdit("", 20, 160, 760, 425, BitOR($WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY)) ;$WS_HSCROLL,
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
GUIctrlSetFont(-1, 10, 0, 0, "Consolas")
|
||||
GUICtrlSetColor(-1, 0xFF3333)
|
||||
|
||||
GUICtrlCreateTabItem("")
|
||||
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
|
||||
|
||||
_GUICtrlEdit_SetLimitText($idError, 10000000)
|
||||
_GUICtrlEdit_SetLimitText($idMessage, 10000000)
|
||||
|
||||
Local $idDummySubmit = GUICtrlCreateDummy()
|
||||
GUICtrlSetOnEvent($idDummySubmit, 'QuietExit')
|
||||
Local $aAccelKeys[1][2] = [["^!x", $idDummySubmit]]
|
||||
GUISetAccelerators($aAccelKeys, $idGUI)
|
||||
|
||||
GUISetOnEvent($GUI_EVENT_CLOSE, "CloseAction")
|
||||
GUICtrlSetOnEvent($idSrcLbl, "__Open_Src_Folder")
|
||||
GUICtrlSetOnEvent($idRstLbl, "__Open_Rst_Folder")
|
||||
GUICtrlSetOnEvent($idListLbl, "__Open_List_Folder")
|
||||
GUICtrlSetOnEvent($idWorkMode, "__Open_App_Folder")
|
||||
GUICtrlSetOnEvent($idSvrNum, "__Open_App_Folder")
|
||||
GUISetState(@SW_SHOW)
|
||||
|
||||
_ReduceMemory(@AutoItPID)
|
||||
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func CheckConfigs()
|
||||
Local $Err, $Check, $Result = True
|
||||
|
||||
$LastErrTime = IniRead($IniFile, "Warning", "LastErrTime", "")
|
||||
If $LastErrTime = "" Or $LastErrTime = "0000/00/00 00:00:00" Then
|
||||
IniWrite($IniFile, "Warning", "LastErrTime", _NowCalc())
|
||||
EndIf
|
||||
;Check Ini File Existence
|
||||
$Check = FileExists($IniFile)
|
||||
If $Check = 0 Then
|
||||
$Result = False
|
||||
$Err = "Missing Config File: " & $IniFile
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
GUICtrlSetData($idChkCfg, "Missing Cfg !")
|
||||
GUICtrlSetColor($idChkCfg, 0xFF0000)
|
||||
Return $Result
|
||||
Else
|
||||
GUICtrlSetColor($idSrcLbl, 0x0000FF)
|
||||
EndIf
|
||||
;Check SrcFolder
|
||||
$Check = FileExists($SrcFolder)
|
||||
If $Check = 0 Then
|
||||
$Result = False
|
||||
$Err = "Config Key Error: SrcFolder = " & $SrcFolder &" --> Not Exist"
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
GUICtrlSetData($idChkCfg, "Config Error!")
|
||||
GUICtrlSetColor($idChkCfg, 0xFF0000)
|
||||
GUICtrlSetColor($idSrcLbl, 0xFF0000)
|
||||
Else
|
||||
GUICtrlSetColor($idSrcLbl, 0x0000FF)
|
||||
EndIf
|
||||
|
||||
;Check RstFolder
|
||||
$Check = FileExists($RstFolder)
|
||||
If $Check = 0 Then
|
||||
$Result = False
|
||||
$Err = "Config Key Error: RstFolder = " & $RstFolder &" --> Not Exist"
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
GUICtrlSetData($idChkCfg, "Config Error!")
|
||||
GUICtrlSetColor($idChkCfg, 0xFF0000)
|
||||
GUICtrlSetColor($idRstLbl, 0xFF0000)
|
||||
Else
|
||||
GUICtrlSetColor($idRstLbl, 0x0000FF)
|
||||
EndIf
|
||||
|
||||
;Check File List Folder
|
||||
$Check = FileExists($ListFolder)
|
||||
If $Check = 0 Then
|
||||
$Result = False
|
||||
$Err = "Config Key Error: FileListFolder = " & $ListFolder &" --> Not Exist"
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
GUICtrlSetData($idChkCfg, "Config Error!")
|
||||
GUICtrlSetColor($idChkCfg, 0xFF0000)
|
||||
GUICtrlSetColor($idListLbl, 0xFF0000)
|
||||
EndIf
|
||||
|
||||
;Check Folders Suffix
|
||||
If StringLeft($SrcFolder, 2) = ".\" Then
|
||||
$SuffixRRR = StringReplace($SrcFolder, ".\", @ScriptDir&"\")
|
||||
$SuffixRRR = $SuffixRRR & "\"
|
||||
Else
|
||||
$SuffixRRR = $SrcFolder & "\"
|
||||
EndIf
|
||||
;ConsoleWrite($SuffixRRR&@CRLF)
|
||||
|
||||
If StringLeft($RstFolder, 2) = ".\" Then
|
||||
$SuffixAAA = StringReplace($RstFolder, ".\", @ScriptDir&"\")
|
||||
$SuffixAAA = $SuffixAAA & "\"
|
||||
Else
|
||||
$SuffixAAA = $RstFolder & "\"
|
||||
EndIf
|
||||
;ConsoleWrite($SuffixAAA&@CRLF)
|
||||
|
||||
If StringLeft($ListFolder, 2) = ".\" Then
|
||||
$SuffixList = StringReplace($ListFolder, ".\", @ScriptDir&"\")
|
||||
$SuffixList = $SuffixList & "\"
|
||||
Else
|
||||
$SuffixList = $ListFolder & "\"
|
||||
EndIf
|
||||
;ConsoleWrite($SuffixAAA&@CRLF)
|
||||
|
||||
;Check WorkMode
|
||||
Switch $WorkMode
|
||||
Case 1
|
||||
GUICtrlSetColor($idWorkMode, 0x0000FF)
|
||||
Case 2
|
||||
GUICtrlSetColor($idWorkMode, 0x0000FF)
|
||||
Case Else
|
||||
$Result = False
|
||||
$Err = "Config Key Error: WorkMode = " & $WorkMode
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
GUICtrlSetData($idChkCfg, "Config Error!")
|
||||
GUICtrlSetColor($idChkCfg, 0xFF0000)
|
||||
GUICtrlSetColor($idWorkMode, 0xFF0000)
|
||||
EndSwitch
|
||||
|
||||
;Check Server Num
|
||||
If $ServerNum < 1 Then
|
||||
$Result = False
|
||||
$Err = "Config Key Error: ServerNum = " & $ServerNum
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
GUICtrlSetData($idChkCfg, "Config Error!")
|
||||
GUICtrlSetColor($idChkCfg, 0xFF0000)
|
||||
GUICtrlSetColor($idSvrNum, 0xFF0000)
|
||||
Else
|
||||
GUICtrlSetColor($idSvrNum, 0x0000FF)
|
||||
EndIf
|
||||
|
||||
;Check Servers
|
||||
;$Datas[$i-1][0] : HostName/IP
|
||||
;$Datas[$i-1][1] : Share Folder
|
||||
;$Datas[$i-1][2] : Max Link Limit
|
||||
;$Datas[$i-1][3] : Current Actual Connection
|
||||
;$Datas[$i-1][4] : Waitting Connection
|
||||
ReDim $Datas[$ServerNum][5]
|
||||
For $i = 1 To $ServerNum Step 1
|
||||
$Datas[$i-1][0] = IniRead($IniFile, "Server-"&$i, "Server", "")
|
||||
$Datas[$i-1][1] = IniRead($IniFile, "Server-"&$i, "Share", "")
|
||||
$Datas[$i-1][2] = Int(IniRead($IniFile, "Server-"&$i, "Limit", "0"))
|
||||
|
||||
If $Datas[$i-1][0] = "" Or $Datas[$i-1][1] = "" Then
|
||||
$Result = False
|
||||
$Err = "Config Key Error: [Server-" &$i & "]: Server/Share=" & $Datas[$i-1][0]
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
ExitLoop
|
||||
EndIf
|
||||
|
||||
If IsNumber($Datas[$i-1][2]) = 0 Or $Datas[$i-1][2] < 0 Then
|
||||
$Result = False
|
||||
$Err = "Config Key Error: [Server-" &$i & "]: Limit=" & $Datas[$i-1][2]
|
||||
AppendLogs('ERR', $Err)
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
ExitLoop
|
||||
EndIf
|
||||
Next
|
||||
|
||||
;ConsoleWrite("Check Configs Result: " & $Result &@CRLF)
|
||||
Return $Result
|
||||
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func LoadingBalance()
|
||||
Local $hSearch, $Request, $Response, $Ret, $Header, $IMAGE, $fsRet, $TempFile
|
||||
|
||||
While 1
|
||||
Sleep(100)
|
||||
$hSearch = FileFindFirstFile($SuffixRRR & "*.RRR")
|
||||
If $hSearch = -1 Then
|
||||
FileClose($hSearch)
|
||||
_ReduceMemory(@AutoItPID)
|
||||
Sleep(500)
|
||||
ContinueLoop 1
|
||||
EndIf
|
||||
|
||||
While 1
|
||||
Sleep(100)
|
||||
$Request = FileFindNextFile($hSearch)
|
||||
If @Error Then
|
||||
FileClose($hSearch)
|
||||
ExitLoop 1
|
||||
EndIf
|
||||
If $Request = ".RRR" Then
|
||||
AppendText($idError, 'Delete File: .RRR' &@CRLF)
|
||||
;AppendLogs('LOG', 'Delete File: .RRR')
|
||||
FileDelete($SuffixRRR & $Request)
|
||||
ContinueLoop 1
|
||||
EndIf
|
||||
If FileGetSize($SuffixRRR & $Request) = 0 Then ContinueLoop 1
|
||||
|
||||
$Header = IniRead($SuffixRRR & $Request, "RRR", $ID, "")
|
||||
$Header = StringStripWS($Header, 8)
|
||||
If $Header = "" Then
|
||||
AppendText($idError, "Delete File: " & $SuffixRRR & $Request & " ---> NO HEADER: " &$ID &@CRLF)
|
||||
AppendLogs('ERR', "Delete File: " & $SuffixRRR & $Request & " ---> NO HEADER: " &$ID &@CRLF)
|
||||
FileDelete($SuffixRRR & $Request)
|
||||
ContinueLoop 1
|
||||
EndIf
|
||||
$IMAGE = IniRead($SuffixRRR & $Request, "RRR", "IMAGE", "")
|
||||
$IMAGE = StringStripWS($IMAGE, 8)
|
||||
$SERVERS = IniRead($SuffixRRR & $Request, "RRR", "SERVERS", "")
|
||||
$SERVERS = StringStripWS($SERVERS, 8)
|
||||
;$Response = StringTrimRight($SuffixAAA & $Request, 4) & ".AAA"
|
||||
|
||||
SortingWaitingConnection()
|
||||
SortingCurrentConnection()
|
||||
$Ret = ReplyRequest($Header, $IMAGE, $SERVERS)
|
||||
|
||||
If $ResponseFormat = 1 Then
|
||||
$Response = StringTrimRight($Request, 4) & ".AAA"
|
||||
$TempFile = StringTrimRight($Request, 4) & ".TMP"
|
||||
IniWrite(@TempDir&"\"&$Response, "AAA", $ID, $Header)
|
||||
IniWrite(@TempDir&"\"&$Response, "AAA", "IMAGE", $IMAGE)
|
||||
IniWrite(@TempDir&"\"&$Response, "AAA", "SERVER", $Ret)
|
||||
FileMove(@TempDir&"\"&$Response, $SuffixAAA & $Response, 1)
|
||||
ElseIf $ResponseFormat = 2 Then
|
||||
$Response = StringTrimRight($Request, 4) & ".AAA"
|
||||
$TempFile = StringTrimRight($Request, 4) & ".TMP"
|
||||
$fsRet = FileOpen(@TempDir&"\"&$Response, 522)
|
||||
FileWrite(@TempDir&"\"&$Response, "Set Server=" & $Ret &@CRLF)
|
||||
FileClose($fsRet)
|
||||
FileMove(@TempDir&"\"&$Response, $SuffixAAA & $Response, 1)
|
||||
EndIf
|
||||
|
||||
If $WorkMode = 1 Then
|
||||
AppendText($idMessage, $ID&"="&$Header& "; SERVER=" &$Ret &@CRLF)
|
||||
AppendLogs('LOG', $ID&"="&$Header& "; SERVER=" &$Ret)
|
||||
Else
|
||||
AppendText($idMessage, $ID&"="&$Header& "; SERVER=" &$Ret& "; IMAGE=" &$IMAGE &@CRLF)
|
||||
AppendLogs('LOG', $ID&"="&$Header& "; SERVER=" &$Ret& "; IMAGE=" &$IMAGE)
|
||||
EndIf
|
||||
FileDelete($SuffixRRR & $Request)
|
||||
WEnd
|
||||
_ReduceMemory(@AutoItPID)
|
||||
WEnd
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func ReplyRequest($Header="", $IMAGE="", $SERVERS="")
|
||||
Local $SkipCnt=0, $Err="", $Tips="", $TipsLog=""
|
||||
|
||||
For $z = 1 To $ServerNum Step 1
|
||||
$Tips &= '[' & $Datas[$z-1][0] &' '& $Datas[$z-1][2] &':'& $Datas[$z-1][3] &':'& $Datas[$z-1][4] & "] "
|
||||
$TipsLog &= "[" & $Datas[$z-1][0] &" "& $Datas[$z-1][2] &":"& $Datas[$z-1][3] &":"& $Datas[$z-1][4] _
|
||||
&"/"& StringFormat('%-.2f',($Datas[$z-1][3]+$Datas[$z-1][4])/$Datas[$z-1][2]) & "] "
|
||||
Next
|
||||
|
||||
;ConsoleWrite($Tips &@CRLF)
|
||||
AppendText($idMessage, $TipsLog &@CRLF)
|
||||
AppendLogs('LOG', $TipsLog)
|
||||
|
||||
If $WorkMode = 2 Then
|
||||
If $IMAGE = "" Then
|
||||
$Err = $ID&": "&$Header & "; ErrorInfo: Missing ImagePN; WorkMode: "&$WorkMode
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
AppendLogs('ERR', $Err)
|
||||
;If $Action Then WarningAction("Missing_Image_PN "&$Header&" "&$IMAGE)
|
||||
Return "ERROR:IMAGE_PN"
|
||||
Else
|
||||
For $v = 1 To $ServerNum Step 1
|
||||
If Not FileExists($SuffixList & $DatasCopy[$v-1][0] & '.txt') Then
|
||||
$DatasCopy[$v-1][3] = -1
|
||||
EndIf
|
||||
If Not SearchStringInFile($SuffixList & $DatasCopy[$v-1][0] & '.txt', $IMAGE) Then
|
||||
$DatasCopy[$v-1][3] = -1
|
||||
$SkipCnt += 1
|
||||
EndIf
|
||||
Next
|
||||
If $SkipCnt >= $ServerNum Then
|
||||
$Err = $ID&": "&$Header& "; ErrorInfo: NO IMAGE; ImagePN: " &$IMAGE
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
AppendLogs('ERR', $Err)
|
||||
If $Action Then WarningAction("NO_IMAGE "&$Header&" "&$IMAGE)
|
||||
Return "ERROR:NO_IMAGE"
|
||||
EndIf
|
||||
EndIf
|
||||
$SkipCnt = 0
|
||||
EndIf
|
||||
|
||||
For $i = 1 To $ServerNum Step 1
|
||||
If $DatasCopy[$i-1][3] <> -1 Then
|
||||
If $DatasCopy[$i-1][3] + $DatasCopy[$i-1][4] < $DatasCopy[$i-1][2] Then
|
||||
;ConsoleWrite("Response: "&$DatasCopy[$i-1][0]&@CRLF)
|
||||
Return $DatasCopy[$i-1][0]
|
||||
EndIf
|
||||
EndIf
|
||||
Next
|
||||
If $Action Then WarningAction("FULL_LOAD "&$Header&" "&$IMAGE)
|
||||
Return "ERROR:MAX_LINK"
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func SortingWaitingConnection()
|
||||
Local $Temp = ""
|
||||
For $a = 1 To $ServerNum Step 1
|
||||
$Datas[$a-1][4] = 0
|
||||
Next
|
||||
Local $RRR_List = _FileListToArray($SuffixAAA, "*.AAA", 1, False)
|
||||
If IsArray($RRR_List) Then
|
||||
For $k = 1 To $RRR_List[0] Step 1
|
||||
If $TimeoutCheck = 1 Then
|
||||
DeleteOldReplyFile($SuffixAAA & $RRR_List[$k])
|
||||
EndIf
|
||||
;Get Server=? from each file in DstFolder.
|
||||
If $ResponseFormat = 2 Then
|
||||
$Temp = FileRead($SuffixAAA & $RRR_List[$k])
|
||||
If @Error Then ContinueLoop
|
||||
If $Temp = "" Then ContinueLoop
|
||||
$Temp = StringReplace($Temp, "Set Server=", "")
|
||||
$Temp = StringStripWS($Temp, 8)
|
||||
;ConsoleWrite("Server: " &$Temp &@CRLF)
|
||||
ElseIf $ResponseFormat = 1 Then
|
||||
$Temp = StringStripWS(IniRead($SuffixAAA & $RRR_List[$k], "AAA", "SERVER", ""), 8)
|
||||
Else
|
||||
ContinueLoop
|
||||
EndIf
|
||||
If $Temp = "" Then ContinueLoop
|
||||
For $b = 1 To $ServerNum Step 1
|
||||
If $Temp = $Datas[$b-1][0] Then $Datas[$b-1][4] += 1
|
||||
Next
|
||||
Next
|
||||
EndIf
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func SortingCurrentConnection()
|
||||
Local $TmpCol0, $TmpCol1, $TmpCol2, $TmpCol3, $TmpCol4, $Random
|
||||
|
||||
For $i=1 To $ServerNum Step 1
|
||||
$Datas[$i-1][3] = ConnectionEnum($Datas[$i-1][0], $Datas[$i-1][1])
|
||||
Next
|
||||
|
||||
$DatasCopy = $Datas
|
||||
|
||||
;Random for Muti-Network Servers or Equal Value of Connection Servers
|
||||
If $EqualSort = 1 Then
|
||||
For $n = 1 To $ServerNum - 1 Step 1
|
||||
If $DatasCopy[$n-1][3] = $DatasCopy[$n][3] Then
|
||||
$Random = Random(0, 1, 1)
|
||||
;ConsoleWrite('Random: ' & $Random &@CRLF)
|
||||
If $Random = 1 Then
|
||||
$TmpCol0 = $DatasCopy[$n-1][0]
|
||||
$TmpCol1 = $DatasCopy[$n-1][1]
|
||||
$TmpCol2 = $DatasCopy[$n-1][2]
|
||||
$TmpCol3 = $DatasCopy[$n-1][3]
|
||||
$TmpCol4 = $DatasCopy[$n-1][4]
|
||||
|
||||
$DatasCopy[$n-1][0] = $DatasCopy[$n][0]
|
||||
$DatasCopy[$n-1][1] = $DatasCopy[$n][1]
|
||||
$DatasCopy[$n-1][2] = $DatasCopy[$n][2]
|
||||
$DatasCopy[$n-1][3] = $DatasCopy[$n][3]
|
||||
$DatasCopy[$n-1][4] = $DatasCopy[$n][4]
|
||||
|
||||
$DatasCopy[$n][0] = $TmpCol0
|
||||
$DatasCopy[$n][1] = $TmpCol1
|
||||
$DatasCopy[$n][2] = $TmpCol2
|
||||
$DatasCopy[$n][3] = $TmpCol3
|
||||
$DatasCopy[$n][4] = $TmpCol4
|
||||
EndIf
|
||||
EndIf
|
||||
Next
|
||||
EndIf
|
||||
|
||||
;Bubble Sort
|
||||
For $x = 1 To $ServerNum Step 1
|
||||
For $y = 1 To $ServerNum -1 Step 1
|
||||
; Sorting by: Current + Watting / Limit
|
||||
If ($DatasCopy[$y-1][3]+$DatasCopy[$y-1][4])/$DatasCopy[$y-1][2] > ($DatasCopy[$y][3]+$DatasCopy[$y][4])/$DatasCopy[$y][2] Then
|
||||
$TmpCol0 = $DatasCopy[$y-1][0]
|
||||
$TmpCol1 = $DatasCopy[$y-1][1]
|
||||
$TmpCol2 = $DatasCopy[$y-1][2]
|
||||
$TmpCol3 = $DatasCopy[$y-1][3]
|
||||
$TmpCol4 = $DatasCopy[$y-1][4]
|
||||
|
||||
$DatasCopy[$y-1][0] = $DatasCopy[$y][0]
|
||||
$DatasCopy[$y-1][1] = $DatasCopy[$y][1]
|
||||
$DatasCopy[$y-1][2] = $DatasCopy[$y][2]
|
||||
$DatasCopy[$y-1][3] = $DatasCopy[$y][3]
|
||||
$DatasCopy[$y-1][4] = $DatasCopy[$y][4]
|
||||
|
||||
$DatasCopy[$y][0] = $TmpCol0
|
||||
$DatasCopy[$y][1] = $TmpCol1
|
||||
$DatasCopy[$y][2] = $TmpCol2
|
||||
$DatasCopy[$y][3] = $TmpCol3
|
||||
$DatasCopy[$y][4] = $TmpCol4
|
||||
EndIf
|
||||
Next
|
||||
Next
|
||||
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func ConnectionEnum($strServer, $strShare)
|
||||
Ping($strServer, 1000)
|
||||
If @Error Then Return -1
|
||||
Local $Ret = _Net_Share_ConnectionEnum("\\" & $strServer, $strShare)
|
||||
If @Error Then
|
||||
Return -1
|
||||
Else
|
||||
If IsArray($Ret) Then
|
||||
Return $Ret[0][0]
|
||||
Else
|
||||
Return -1
|
||||
EndIf
|
||||
EndIf
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func WarningAction($ErrMsg="")
|
||||
If $Action == "0" Then Return
|
||||
Local $iDiff
|
||||
$LastErrTime = IniRead($IniFile, "Warning", "LastErrTime", "")
|
||||
$iDiff = _DateDiff("s", $LastErrTime, _NowCalc())
|
||||
If @Error Then
|
||||
AppendText($idError, ">>> Get Local Time Failed !" &@CRLF)
|
||||
AppendLogs('ERR', ">>> Get Local Time Failed !")
|
||||
Return
|
||||
EndIf
|
||||
If $iDiff < $Interval Then Return
|
||||
If Not FileExists(@ScriptDir&"\"&$Interface) Then
|
||||
AppendText($idError, ">>> Missing Warning Interface !" &@CRLF)
|
||||
AppendLogs('ERR', ">>> Missing Warning Interface !")
|
||||
Return
|
||||
EndIf
|
||||
;ShellExecute(@ScriptDir&"\"&$Interface, $WarningID &" "& $ErrMsg, "", "open")
|
||||
ShellExecute(@ScriptDir&"\"&$Interface, $WarningID &" "& $ErrMsg, "", "open", @SW_HIDE)
|
||||
Local $iRtn
|
||||
$iRtn = IniWrite($IniFile, "Warning", "LastErrTime", _NowCalc())
|
||||
If $iRtn = 0 Then
|
||||
AppendText($idError, ">>> Record LastErrTime Failed !" &@CRLF)
|
||||
AppendLogs('ERR', ">>> Record LastErrTime Failed !")
|
||||
EndIf
|
||||
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func SearchStringInFile($File="", $StrX="")
|
||||
Local $Content = "", $Err = ""
|
||||
If $File = "" Then Return False
|
||||
If $StrX = "" Then Return False
|
||||
Local $fOpen = FileOpen($File)
|
||||
If $fOpen = -1 Then
|
||||
FileClose($fOpen)
|
||||
$Err = "Open File Error: " &$File
|
||||
AppendText($idError, $Err &@CRLF)
|
||||
AppendLogs('ERR', $Err)
|
||||
Return False
|
||||
EndIf
|
||||
$Content = FileRead($fOpen)
|
||||
FileClose($fOpen)
|
||||
If $Content = "" Then Return False
|
||||
If StringInStr($Content, $StrX) Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
EndIf
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func DeleteOldReplyFile($fsFile)
|
||||
Local $FileTime, $DiffTime
|
||||
;Local $NowTime = @YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC
|
||||
|
||||
$FileTime = FileGetTime($fsFile, 0, 1)
|
||||
$FileTime = StringLeft($FileTime,4)&'/'&StringMid($FileTime,5,2)&'/'&StringMid($FileTime,7,2) _
|
||||
& ' ' & StringMid($FileTime,9,2)&':'&StringMid($FileTime,11,2)&':'&StringMid($FileTime,13,2)
|
||||
$DiffTime = _DateDiff("n", $FileTime, _NowCalc())
|
||||
;~~~~~Delete Files Which Modified Time Over Specified Minutes.
|
||||
;ConsoleWrite($RRR_List[$k] &@TAB& $FileTime &@TAB& $DiffTime &@CRLF)
|
||||
|
||||
If $DiffTime > $TimeoutMinutes Then
|
||||
FileDelete($fsFile)
|
||||
AppendText($idMessage, "Delete File: " & $fsFile &" File Time: "& $FileTime &@CRLF)
|
||||
AppendLogs('LOG', "Delete File: " & $fsFile &" File Time: "& $FileTime)
|
||||
Return
|
||||
EndIf
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func AppendText($hCtrl, $Text)
|
||||
Local $Lines
|
||||
$Lines = _GUICtrlEdit_GetLineCount($hCtrl)
|
||||
If $Lines > 500 Then _GUICtrlEdit_SetText($hCtrl, "")
|
||||
_GUICtrlEdit_AppendText($hCtrl, _NowCalc() &" "& $Text &@CRLF)
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func AppendLogs($LogType, $LogInfo)
|
||||
If $LogType = 'LOG' Then
|
||||
$LogFile = $LogFilePath &"\"& @YEAR & @MON & @MDAY & ".LOG"
|
||||
_FileWriteLog($LogFile, $LogInfo)
|
||||
EndIf
|
||||
If $LogType = 'ERR' Then
|
||||
$ErrFile = $ErrFilePath &"\"& @YEAR & @MON & @MDAY & ".ERR"
|
||||
_FileWriteLog($ErrFile, $LogInfo)
|
||||
EndIf
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func CloseAction()
|
||||
If @Compiled = 0 Then
|
||||
GUIDelete($idGUI)
|
||||
Exit
|
||||
EndIf
|
||||
|
||||
Local $ExitCode = "000000"
|
||||
Local $Content = InputBox(">>> EXIT <<<", "PASSWORD: "&@CRLF, _
|
||||
"", "*", 300, 150, Default, Default, 10, $idGUI)
|
||||
If $Content == $ExitCode Then
|
||||
GUIDelete($idGUI)
|
||||
AppendLogs('LOG', "Password Matches!")
|
||||
AppendLogs('LOG', $AppFullName & " Exiting ...")
|
||||
Exit
|
||||
EndIf
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func QuietExit()
|
||||
AppendLogs('LOG', "Hot Key Pressed!")
|
||||
AppendLogs('LOG', $AppFullName & " Exiting ...")
|
||||
GUIDelete($idGUI)
|
||||
Exit
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func __Open_Src_Folder()
|
||||
If FileExists($SrcFolder) Then Run("Explorer.exe " & $SrcFolder)
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func __Open_Rst_Folder()
|
||||
If FileExists($RstFolder) Then Run("Explorer.exe " & $RstFolder)
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func __Open_List_Folder()
|
||||
If FileExists($ListFolder) Then Run("Explorer.exe " & $ListFolder)
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func __Open_App_Folder()
|
||||
Run("Explorer.exe " & @ScriptDir)
|
||||
EndFunc
|
||||
|
||||
|
||||
|
||||
Func _ReduceMemory($i_PID = -1)
|
||||
If $i_PID <> -1 Then
|
||||
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
|
||||
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
|
||||
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
|
||||
Else
|
||||
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
|
||||
EndIf
|
||||
|
||||
Return $ai_Return[0]
|
||||
EndFunc
|
||||
|
||||
|
BIN
LoadBalanceSystem.exe
Normal file
BIN
LoadBalanceSystem.exe
Normal file
Binary file not shown.
2
LoadBalanceSystem.ini
Normal file
2
LoadBalanceSystem.ini
Normal file
@ -0,0 +1,2 @@
|
||||
[Warning]
|
||||
LastErrTime=2020/08/30 00:32:00
|
Loading…
x
Reference in New Issue
Block a user