Здравствуйте, надо написать было скрипт автоматизации передачи файлов в Radmin c удаленного компьютера на локальный в определенную папку с удалением файлов на удаленном компьютере.
Написал скрипт входа в режим передачи файлов, а вот дальше как не пробывал не получается открыть нужную папку:
Затык где-то в последних 5 строках кода, title и class окна ввожу верно вроде и classnn тоже верно вроде, но ничего не получается.
Думал может через окно дисков сделать SysListView32, но как там сделать не до конца понял по справке.
Написал скрипт входа в режим передачи файлов, а вот дальше как не пробывал не получается открыть нужную папку:
Код:
Global $path_ini = @ScriptDir & '\test.ini'
Global $file_name = IniRead ( $path_ini, "DATA", "FILE_NAME", "radmin.exe" ) ;название исполнительного файла
Global $path = IniRead ( $path_ini, "DATA", "PATH", "c:\Program Files\Radmin Viewer 3\" ) ;путь к папке программы
Global $path_full = $path & $file_name ;полный путь исполнительному файлу
Global $ip = IniRead ( $path_ini, "SECURITY", "IP", "0.0.0.0" ) ;путь к папке программы
Global $port = IniRead ( $path_ini, "SECURITY", "PORT", "4489" ) ;путь к папке программы
Global $user = IniRead ( $path_ini, "SECURITY", "USER", "admin" ) ;путь к папке программы
Global $pass = IniRead ( $path_ini, "SECURITY", "PASSWORD", "12345" ) ;путь к папке программы
Global $path_dir_files = IniRead ( $path_ini, "FILES", "PATH_DIR_FILES", "C:\logs\" ) ;путь к папке программы
Global $radmin ="[TITLE:" & $ip & " - Передача файлов; CLASS:BASECLASS#250F628]" ;имя титульного окна
Func _Patch_Log_Screen() ;Функция пути к папке логов и скринов
Local $path_log_screen = IniRead ( $path_ini, "DATA", "PATH_LOG_SCREEN", @ScriptDir ) ;путь к папке логов и скриншота скрипта
If Not FileExists($path_log_screen) Then
DirCreate($path_log_screen)
EndIf
return $path_log_screen
EndFunc
Func _Name_Log_Screen() ;Функция имени файлов логов и скринов
Local $name_log_screen = IniRead ( $path_ini, "DATA", "NAME_LOG_SCREEN", "radmin_connect_log" ) ;имя файлов логов и скринов
return $name_log_screen
EndFunc
Func _DayTime() ;Функция даты и времени для написания лога
return (@MDAY & '/' & @MON & '/' & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & " --- ")
EndFunc
Func _PatchDayTime_Log() ;Функция пути, даты, времени и имени файла лога
return (_Patch_Log_Screen() & @MON & @YEAR & " --- " & _Name_Log_Screen() & ".txt")
EndFunc
; FileWrite(_PatchDayTime_Log(), _daytime() & "Скрипт автоматизации запущен" & @CRLF) ; запись в файл лога о запуске скрипта
If Not ProcessExists($file_name) Then ;проверка не запущен ли процесс программы
run ($path_full & " /connect:" & $ip & ":" & $port & " /file")
FileWrite(_PatchDayTime_Log() , _DayTime() & "Приложение запущено" & @CRLF) ; запись в файл лога о запуске
WinWait ( "Система безопасности Radmin:" , "" , 10 )
ControlSend("Система безопасности Radmin", "", "Edit1", $pass)
Send("{ENTER}")
WinWait ("192.168.7.3 - Передача файлов", "" , 30)
WinActive("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "") ;активация окна
ControlSend("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "", "[CLASSNN:Edit2]", $path_dir_files) ;ввод пути удаленной директории
ControlSend("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "", "[CLASSNN:Edit2]",'{ENTER}') ;открытие папки
EndIf
Затык где-то в последних 5 строках кода, title и class окна ввожу верно вроде и classnn тоже верно вроде, но ничего не получается.
Думал может через окно дисков сделать SysListView32, но как там сделать не до конца понял по справке.