Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)

Модерирует : gyra, Maz

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_OutFile=connect.exe
#AutoIt3Wrapper_icon=connect.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Comment=
#AutoIt3Wrapper_Res_Description=connect.exe
#AutoIt3Wrapper_Res_Fileversion=0.0.0.1
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=n
#AutoIt3Wrapper_Res_LegalCopyright=AZJIO
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Run_AU3Check=n
#EndRegion
;**** Directives created by AutoIt3Wrapper_GUI ****
 
#Include <File.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
 
#NoTrayIcon ;скрыть в системной панели индикатор AutoIt
 
Global $aRecords
Global $Ini = @ScriptDir&'\ip_port.ini' ; путь к ip_port.ini
;Проверка существования ip_port.ini и атосоздание при отстутствии

$answer = ""
If Not FileExists($Ini) Then $answer = MsgBox(4, "Выгодное предложение", "Хотите создать необходимый ip_port.ini"&@CRLF&"для хранения IP и портов?")
If $answer = "6" Then
    IniWriteSection($Ini, "IP", '; отсчёт айпишнеков с третьей строки. формат строк IP:порт.'&@LF&'192.168.31.92:80'&@LF&'192.168.31.92:21')
EndIf
 
; читаем данные ip_port.ini в массив
If Not _FileReadToArray($Ini,$aRecords) Then
   MsgBox(4096,"Ошибка", "Ошибка чтения массива ip_port.ini", @error)
   Exit
EndIf

$h=$aRecords[0]*18-36 ; установка размера по количеству итемов
If $aRecords[0]>23 Then $h=357
$hGUI= GUICreate("Коннект",220,90+$h) ; размер окна
$hListView = GUICtrlCreateListView  ('------------' ,5,5,210,$h, $LVS_NOCOLUMNHEADER + $LVS_SHOWSELALWAYS, $LVS_EX_FULLROWSELECT + $LVS_EX_CHECKBOXES)
_GUICtrlListView_SetColumn($hListView, 0, "--------", 180)
GUICtrlSetBkColor(-1,0xf0f0f0) ; 0xE0DFE3 - цвет стандартный серый
 
For $i=3 To $aRecords[0]
Assign('item' & $i, _GUICtrlListView_AddItem($hListView,$aRecords[$i] ))
Next
 
$checkall=GUICtrlCreateCheckbox ("вкл/выкл все", 11,10+$h,81,22)
GUICtrlSetTip(-1, "Снять/поставить все галочки.")
 
$conn=GUICtrlCreateButton ("Подключить", 25,40+$h,71,22)
GUICtrlSetTip(-1, "Подключится тоталом"&@CRLF&"выделить не галочкой")
 
$spicok=GUICtrlCreateButton ("ip_port.ini", 120,10+$h,71,22)
GUICtrlSetTip(-1, "Редактировать список.")
 
$test=GUICtrlCreateButton ("проверить", 120,40+$h,71,22)
GUICtrlSetTip(-1, "Проверить коннект"&@CRLF&"отмеченные галочкой")
 
$re=GUICtrlCreateButton ("R", 193,10+$h,22,22)
GUICtrlSetTip(-1, "Перезапуск программки"&@CRLF&"после редактирования")
 
$Label000=GUICtrlCreateLabel ('Строка состояния   @AZJIO 3.04.2010', 3,90-18+$h,204,18)
 
GUISetState ()
 
While 1
    $msg = GUIGetMsg()
    Select
        Case
$msg = $test
                TCPStartUp()
                $t=0
            For $i=3 To $aRecords[0]
            If _GUICtrlListView_GetItemChecked($hListView,Eval('item' & $i))=1 Then
            $t+=1
            If StringInStr($aRecords[$i], ':') = 0 Then
                MsgBox(0,"Ошибка", "Укажите IP:порт - "&$aRecords[$i])
            Else
                $aIPP = StringSplit($aRecords[$i], ":")
                GUICtrlSetData($Label000, 'Проверка '&$aRecords[$i])
                $socket = TCPConnect($aIPP[1], $aIPP[2])
                If @error Then
                    _GUICtrlListView_SetItem($hListView, $aRecords[$i]&"----", $i-3)
                Else
                    _GUICtrlListView_SetItem($hListView, $aRecords[$i]&"+++", $i-3)
                EndIf
            EndIf
            EndIf
            Next
 
            If $t = 0 Then
                GUICtrlSetData($Label000, 'Нет отмеченных галочкой.')
            Else
                GUICtrlSetData($Label000, 'Готово !!!')
            EndIf
                TCPShutdown()
 
            ; Выделить/отменить выделение всех
        Case $msg = $checkall
            If GUICtrlRead($checkall)=1 Then
                $p=1
            Else
                $p=0
            EndIf
            For $i = 3 To $aRecords[0]
                _GUICtrlListView_SetItemChecked($hListView, Eval('item' & $i),$p )
            Next
 
        Case $msg = $conn
            $item000=_GUICtrlListView_GetSelectionMark($hListView)
            $item000 = StringRegExpReplace($aRecords[$item000+3], "(\+\+\+|----)", "")
            If StringInStr($item000, ':21') = 0 Then
                MsgBox(0,"Ошибка", "Подключение только с указанным портом :21")
                ContinueLoop
            EndIf
            $aIPP = StringSplit($item000, ":")
            $aPath = StringSplit(@ScriptDir&'\Totalcmd.exe|'&@ProgramFilesDir&'\Totalcmd\Totalcmd.exe|'&@ProgramFilesDir&'\Totalcmd Podarok Edition\Totalcmd.exe|'&@ProgramFilesDir&'\Total Commander\Totalcmd.exe', "|")
            For $i=1 To $aPath[0]
                If FileExists($aPath[$i]) and $aIPP[2]=21 Then
                    $sPath =$aPath[$i]
                    ExitLoop
                else
                    ContinueLoop
                endif
            Next
 
            $delfile = FileOpen(@TempDir&'\3k9tm6.ini', 2)
            FileWrite($delfile, '[connections]'&@CRLF& _
'1='&$aIPP[1]&@CRLF& _
'default='&$aIPP[1]&@CRLF& _
'[default]'&@CRLF& _
'pasvmode=0'&@CRLF& _
'[General]'&@CRLF& _
'ConnectRetries=10'&@CRLF& _
'WaitDelay=5'&@CRLF& _
'transfermode=I'&@CRLF& _
'LogFile='&@CRLF& _
'FtpInBackground=0'&@CRLF& _
'ModeZ=1'&@CRLF& _
'e-mail='&@CRLF& _
'['&$aIPP[1]&']'&@CRLF& _
'host='&$aIPP[1]&@CRLF& _
'username=anonymous'&@CRLF& _
'anonymous=1'&@CRLF& _
'directory=/'&@CRLF& _
'pasvmode=0'&@CRLF& _
'password=B4DB8CDB1AFFFF5DBE5112CE3D'&@CRLF)
FileClose($delfile)
            If ProcessExists ( "TOTALCMD.EXE" )<>0 Then ;если существует процесс TOTALCMD.EXE, то завершить его
                ProcessClose ( "TOTALCMD.EXE" )
                ProcessWaitClose ( "TOTALCMD.EXE" )
            EndIf
            Run ( '"'&$sPath&'"  /F="'&@TempDir&'\3k9tm6.ini"', '', @SW_SHOW )
            $version=WinList("[REGEXPTITLE:Total Commander *]")
            WinWaitActive($version)
            ; меняем раскладку на клавиатуре
            $hWnd = WinGetHandle("classname=TTOTAL_CMD")
            $dll = DllOpen("user32.dll")
            Local $ret = DllCall($dll, "long", "LoadKeyboardLayout", "str", '00000409', "int", 0)
            DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $hWnd, "int", 0x50, "int", 1, "int", $ret[0])
            DllClose($dll)
            ; ожидаем окно
            $version=WinList("[REGEXPTITLE:Total Commander *]")
            WinWaitActive($version)
            Send("^{а}")
            sleep(100)
            If not WinActive("Соединение с FTP-сервером") Then Send("^{f}")
            Send("{ENTER}")
 
        Case $msg = $spicok
            ShellExecute(@ScriptDir&'\ip_port.ini', "", @ScriptDir, "")
 
        Case $msg = $re
            _re()
 
        Case $msg = -3
            Exit
    EndSelect
WEnd
 
Func _re()
    Local $sAutoIt_File = @TempDir & "\~Au3_ScriptRestart_TempFile.au3"
    Local $sRunLine, $sScript_Content, $hFile
 
    $sRunLine = @ScriptFullPath
    If Not @Compiled Then $sRunLine = @AutoItExe & ' /AutoIt3ExecuteScript ""' & $sRunLine & '""'
    If $CmdLine[0] > 0 Then $sRunLine &= ' ' & $CmdLineRaw
 
    $sScript_Content &= '#NoTrayIcon' & @CRLF & _
    'While ProcessExists(' & @AutoItPID & ')' & @CRLF & _
    '   Sleep(10)' & @CRLF & _
    'WEnd' & @CRLF & _
    'Run("' & $sRunLine & '")' & @CRLF & _
    'FileDelete(@ScriptFullPath)' & @CRLF
 
    $hFile = FileOpen($sAutoIt_File, 2)
    FileWrite($hFile, $sScript_Content)
    FileClose($hFile)
 
    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sAutoIt_File & '"', @ScriptDir, @SW_HIDE)
    Sleep(1000)
    Exit
EndFunc  ;==>_re

Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 20:19 02-04-2010 | Исправлено: AZJIO, 12:54 03-04-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru