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

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

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

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

AZJIO



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

Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_OutFile=Connection.exe
#AutoIt3Wrapper_icon=Connection.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Comment=
#AutoIt3Wrapper_Res_Description=Connection.exe
#AutoIt3Wrapper_Res_Fileversion=0.3.0.0
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=n
#AutoIt3Wrapper_Res_LegalCopyright=AZJIO
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Run_AU3Check=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
 
;  @AZJIO 12.10.2010 (AutoIt3_v3.2.12.1+)
#NoTrayIcon
Opt("GUIResizeMode", 0x0322)
#Include <File.au3>
#include <ListViewConstants.au3>
 
Dim $nCurCol    = -1
Dim $nSortDir   = 1
Dim $bSet       = 0
Dim $nCol       = 1
Global Const $LVM_GETITEM = $LVM_FIRST + 5
 
 
Global $aRecords, $aIPPP, $PingInp0, $Port0, $IP, $ipinp01=1, $ipinp02=0, $h
Global $Ini = @ScriptDir&'\ip.ini'
If Not FileExists($Ini) And MsgBox(4, "Выгодное предложение", "Хотите создать необходимый ip.ini"&@CRLF&"для хранения IP (айпишнеков)?")=6 Then
    $file = FileOpen($Ini,1)
    FileWrite($file, '192.168.30.92|Nick'&@CRLF&'192.168.31.93')
    FileClose($file)
EndIf
 
_Open()
$Gui= GUICreate("Connection - ip",300,140+$h, @DesktopWidth-308, -1, 0x00040000+0x00020000, 0x00000010) ; размер окна
$GuiPos = WinGetPos($Gui)
$delta=$GuiPos[3]-110-$h
$hListView = GUICtrlCreateListView('IP|Ping|Port|NickName' ,5,5,290,$h, $LVS_SHOWSELALWAYS + $LVS_SINGLESEL, $LVS_EX_FULLROWSELECT + $LVS_EX_CHECKBOXES)
GUICtrlSetState(-1, 8)
GUICtrlSetResizing(-1, 102+256)
; GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_CHECKBOXES, $LVS_EX_CHECKBOXES)
; GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_TRACKSELECT, $LVS_EX_TRACKSELECT)
 
GUICtrlRegisterListViewSort (-1, "_Sort" )
GUICtrlSendMsg($hListView, 0x1000+30, 0, 125)
GUICtrlSendMsg($hListView, 0x1000+30, 1, 40)
GUICtrlSendMsg($hListView, 0x1000+30, 2, 48)
GUICtrlSendMsg($hListView, 0x1000+30, 3, 50)
 
GUICtrlSetBkColor(-1,0xf0f0f0) ; 0xE0DFE3 - цвет стандартный серый
_item()
$aRecords=''
 
$StatusBar=GUICtrlCreateLabel ('Строка состояния      @AZJIO 12.10.2010', 10,110-18+$h,284,18, 0xC)
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$checkall=GUICtrlCreateCheckbox("вкл/выкл все", 11,10+$h,81,22)
GUICtrlSetTip(-1, "Снять/поставить все галочки.")
GUICtrlSetState(-1,1)
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$chP=GUICtrlCreateCheckbox("Вкл p+", 120,10+$h,65,22)
GUICtrlSetTip(-1, "Поставить галочки"&@CRLF&"на успешно пингованные компы")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
GUICtrlCreateGroup('', 105, 26+$h, 77, 33)
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$Scan=GUICtrlCreateButton("Ген", 107,35+$h,35,22)
GUICtrlSetTip(-1, "Генерировать список"&@CRLF&"диапазона IP")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$Add=GUICtrlCreateButton("Add", 144,35+$h,35,22)
GUICtrlSetTip(-1, "Добавить отмеченные"&@CRLF&"в последний открытый список IP")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$OpenSpicok=GUICtrlCreateButton ("Откр", 186,10+$h,37,22)
GUICtrlSetTip(-1, "Открыть список IP")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$spicok=GUICtrlCreateButton ("ini", 225,10+$h,22,22)
GUICtrlSetTip(-1, "Редактировать список.")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$re=GUICtrlCreateButton ("R", 249,10+$h,22,22)
GUICtrlSetTip(-1, "Перезапуск программки"&@CRLF&"после редактирования ini")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$About=GUICtrlCreateButton ("@", 273,10+$h,22,22)
GUICtrlSetTip(-1, "О программе")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$checkping=GUICtrlCreateCheckbox("Только пинг", 11,33+$h,86,22)
GUICtrlSetState(-1, 1)
GUICtrlSetTip(-1, "Быстрее. Не проверяется"&@CRLF&"соединение по порту")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
GUICtrlCreateLabel("Пинг, мсек :", 10,67+$h,76,22)
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
$PingInp=GUICtrlCreateInput('250', 70,66+$h,30, 20)
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
 
$LPort=GUICtrlCreateLabel ('порт :', 110,67+$h,61,17)
GUICtrlSetState(-1, 128)
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
$ComboP=GUICtrlCreateCombo('', 143,65+$h,45)
GUICtrlSetState(-1, 128)
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
GUICtrlSetData($ComboP,'21|80|81|82', '21')
 
$find=GUICtrlCreateButton ("Проверить", 200,35+$h,95,24)
GUICtrlSetTip(-1, "Проверить коннект"&@CRLF&"отмеченные галочкой")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
GUICtrlSetState(-1, 256)
 
$conn=GUICtrlCreateButton ("Подключить", 200,64+$h,95,24)
GUICtrlSetTip(-1, "Подключится тоталом (21)"&@CRLF&"или браузером (80)"&@CRLF&"выделить не галочкой")
GUICtrlSetResizing(-1, 512 + 256 + 64 + 4)
$tr=0
GUISetState ()
 
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $About
                _About()
        Case $msg =  -13
            If StringInStr(FileGetAttrib(@GUI_DRAGFILE), "D") = 0 And StringRight(@GUI_DRAGFILE, 4)='.ini' Then
                $Ini=@GUI_DRAGFILE
                _OpenSpicok()
            EndIf
        Case $msg = $OpenSpicok
            $IniFile = FileOpenDialog('Открыть', @WorkingDir , "Конфигурационный (*.ini)", "", "", $Gui)
            If @error Or StringRight($IniFile, 4)<>'.ini' Then ContinueLoop
            $Ini=$IniFile
            _OpenSpicok()
        Case $msg = $Add
            $file = FileOpen($Ini, 0)
            $textini = FileRead($file)
            FileClose($file)
            $file = FileOpen($Ini,1)
            $x=''
            $kol=0
            For $i=1 To $aIPPP[0][0]
                If GUICtrlRead($aIPPP[$i][0],1)=1 Then
                    If Not StringRegExp($textini&@CRLF,'\Q'&$aIPPP[$i][1]&'\E(\s|\|)',0) Then
                        $x&=@CRLF&$aIPPP[$i][1]
                        $kol+=1
                    EndIf
                EndIf
            Next
            FileWrite($file, $x)
            FileClose($file)
            GUICtrlSetData($StatusBar, 'Добавлено айпишнеков : '&$kol& ' шт')
        Case $msg = $Scan
            _MsgFile()
            If $ipinp01=1 Or $ipinp02=0 Then ContinueLoop
            $01start=StringRegExpReplace($ipinp01,'(^.*)\.(\d+)$','\2')
            $02start=StringRegExpReplace($ipinp01,'(^.*)\.(\d+)$','\1')
            if $ipinp02<0 Or $ipinp02>255 Or $ipinp02<=$01start Then
                MsgBox(0, 'Сообщение', "Параметры заданы не верно")
                ContinueLoop
            EndIf
            
            GUICtrlSendMsg($hListView, 0x1000+9, 0, 0)
            $aIPPP=''
            Dim $aIPPP[$ipinp02-$01start+2][5]
            $aIPPP[0][0]=$ipinp02-$01start+1
            $x=0
            For $i=$01start To $ipinp02
                $x+=1
                $aIPPP[$x][0]=GUICtrlCreateListViewItem($02start&'.'&$i,$hListView)
                GUICtrlSetState($aIPPP[$x][0],1)
                $aIPPP[$x][1]=$02start&'.'&$i
            Next
            
        Case $msg = $checkping
            If GUICtrlRead($checkping)=1 Then
                GUICtrlSetState($LPort, 128)
                GUICtrlSetState($ComboP, 128)
            Else
                GUICtrlSetState($LPort, 64)
                GUICtrlSetState($ComboP, 64)
            EndIf
        Case $msg = $find
            $timer = TimerInit() ; засекаем время
            If $tr=1 Then
                GUICtrlSetState($hListView, 32)
                For $i=1 To $aIPPP[0][0]
                        GUICtrlSetColor($aIPPP[$i][0],0x000000)
                        GUICtrlSetBkColor($aIPPP[$i][0],0xf0f0f0)
                Next
                GUICtrlSetState($hListView, 16)
            EndIf
            $Port0=GUICtrlRead($ComboP)
            $PingInp0=GUICtrlRead($PingInp)
            $checkping0=GUICtrlRead($checkping)
            TCPStartUp()
            
            $kol=0
            For $i=1 To $aIPPP[0][0]
                If GUICtrlRead($aIPPP[$i][0],1)=1 Then $kol+=1
            Next
            
            $t=0
            $p=0
            For $i=1 To $aIPPP[0][0]
            If GUICtrlRead($aIPPP[$i][0],1)=1 Then
            $t+=1
                GUICtrlSetData($StatusBar, 'Проверка '&$aIPPP[$i][1]&'    / '&$kol&' / '&$kol-$t&' / '&$p&' / '&Ceiling(TimerDiff($timer) / 1000)&' сек')
                $Ping=Ping($aIPPP[$i][1], $PingInp0)
                If $Ping Then
                    $aIPPP[$i][2]='p+'
                    $p+=1
                    If $checkping0=4 Then
                        $iSocket = TCPConnect($aIPPP[$i][1], $Port0)
                        If @error Then
                            $aIPPP[$i][3]=$Port0&'-'
                            GUICtrlSetData($aIPPP[$i][0],$aIPPP[$i][1]&'|'&$aIPPP[$i][2]&'|'&$aIPPP[$i][3])
                            GUICtrlSetBkColor($aIPPP[$i][0],0xffff00)
                        Else
                            $aIPPP[$i][3]=$Port0&'+'
                            GUICtrlSetData($aIPPP[$i][0],$aIPPP[$i][1]&'|'&$aIPPP[$i][2]&'|'&$aIPPP[$i][3])
                            GUICtrlSetBkColor($aIPPP[$i][0],0x00ff00)
                        EndIf
                        TCPCloseSocket($iSocket)
                    Else
                        GUICtrlSetData($aIPPP[$i][0],$aIPPP[$i][1]&'|'&$aIPPP[$i][2])
                        GUICtrlSetBkColor($aIPPP[$i][0],0xffff00)
                    EndIf
                Else
                    $aIPPP[$i][2]='p-'
                    GUICtrlSetData($aIPPP[$i][0],$aIPPP[$i][1]&'|'&$aIPPP[$i][2]&'|'&$aIPPP[$i][3])
                    GUICtrlSetColor($aIPPP[$i][0],0xcc0000)
                    GUICtrlSetBkColor($aIPPP[$i][0],0xffd7d7)
                EndIf
            EndIf
            Next
 
            If $t Then
                GUICtrlSetData($StatusBar, 'Готово !!!'&'    / '&$kol&' / '&$p&' / за '&Ceiling(TimerDiff($timer) / 1000)&' сек')
            Else
                GUICtrlSetData($StatusBar, 'Нет отмеченных галочкой.')
                MsgBox(0, 'Сообщение', 'Нет отмеченных галочкой.')
                TCPShutdown()
                ContinueLoop
            EndIf
            TCPShutdown()
            $tr=1
 
            ; Выделить/отменить выделение всех
        Case $msg = $checkall
            If GUICtrlRead($checkall)=1 Then
                $p=1
            Else
                $p=4
            EndIf
            For $i = 1 To $aIPPP[0][0]
                GUICtrlSetState($aIPPP[$i][0],$p)
            Next
 
            ; Выделить p+
        Case $msg = $chP
            If GUICtrlRead($chP)=1 Then
                For $i = 1 To $aIPPP[0][0]
                    If $aIPPP[$i][2]='p+' Then GUICtrlSetState($aIPPP[$i][0],1)
                    If $aIPPP[$i][2]='p-' Then GUICtrlSetState($aIPPP[$i][0],4)
                Next
            Else
                For $i = 1 To $aIPPP[0][0]
                    GUICtrlSetState($aIPPP[$i][0],4)
                Next
            EndIf
 
        Case $msg = $conn
            TCPStartUp()
            $Port0=GUICtrlRead($ComboP)
            $PingInp0=GUICtrlRead($PingInp)
            $item000=ControlListView($Gui, '', 'SysListView321', 'GetSelected')
            $IP=ControlListView($Gui, '', 'SysListView321', 'GetText', $item000)
            If $Port0=21 Then
            _ConnectFTP()
            If @error Then ContinueLoop
            TCPShutdown()
 
            $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]) Then
                    $sPath =$aPath[$i]
                    ExitLoop
                else
                    ContinueLoop
                endif
            Next
 
            $delfile = FileOpen(@TempDir&'\3k9tm6.ini', 2)
            FileWrite($delfile, '[connections]'&@CRLF& _
'1='&$IP&@CRLF& _
'default='&$IP&@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& _
'['&$IP&']'&@CRLF& _
'host='&$IP&@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, то завершить его
                If  MsgBox(4, "Сообщение", "Перезапускаем Тотал?"&@CRLF&"(иначе ничего не получится)")=6 Then
                    ProcessClose ( "TOTALCMD.EXE" )
                    ProcessWaitClose ( "TOTALCMD.EXE" )
                Else
                    ContinueLoop
                EndIf
            EndIf
            Run ( '"'&$sPath&'"  /F="'&@TempDir&'\3k9tm6.ini"', '', @SW_SHOW)
            WinWaitActive("[REGEXPTITLE:Total Commander *]", '', 2)
            If WinActive("[REGEXPTITLE:Total Commander *]") Then
                ; меняем раскладку на клавиатуре
                $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)
                ; ожидаем окно
                Send("^{а}")
                sleep(100)
                If not WinActive("Соединение с FTP-сервером") Then
                    Send("^{f}")
                    sleep(100)
                EndIf
                If WinActive("Соединение с FTP-сервером") Then
                    Send("{ENTER}")
                EndIf
            EndIf
            EndIf
 
            If $Port0=80 Or $Port0=81 Or $Port0=82 Then
                _ConnectHTTP()
                If @error Then ContinueLoop
                TCPShutdown()
                ShellExecute ('http://'&$IP&':'&$Port0)
            EndIf
 
        Case $msg = $spicok
            ShellExecute($Ini)
        Case $msg = $re
            _re()
        Case $msg = -3
            Exit
         Case $hListView
            $bSet = 0
            $nCurCol = $nCol
    EndSelect
WEnd
 
Func _OpenSpicok()
    GUICtrlSendMsg($hListView, 0x1000+9, 0, 0)
    _Open()
    _item()
    $aRecords=''
    $GuiPos = WinGetPos($Gui)
    WinMove($Gui, '', @DesktopWidth-308, @DesktopHeight/2-110/2-$h/2-$delta/2-10, 300, 110+$h+$delta)
    GUICtrlSetPos($hListView, 5, 5, -1, $h)
    $finame=StringRegExpReplace($Ini,'(^.*)\\(.*)\.(.*)$','\2')
    WinSetTitle($Gui, '', 'Connection - '&$finame)
    GUICtrlSetTip($Add, "Добавить отмеченные"&@CRLF&"в последний открытый список IP"&@CRLF&"в "&$finame)
    GUICtrlSetData($StatusBar, 'Открыт файл: '&$finame&', '&$aIPPP[0][0]&' шт')
EndFunc
 
Func _Open()
; читаем данные ip.ini в массив
If Not _FileReadToArray($Ini,$aRecords) Then
   MsgBox(4096,"Ошибка", "Ошибка чтения массива ip.ini", @error)
   Exit
EndIf
$h=$aRecords[0]*18+25+18 ; установка размера по количеству итемов
If $aRecords[0]*18>@DesktopHeight-210 Then $h=@DesktopHeight-210
EndFunc
 
Func _item()
Dim $aIPPP[$aRecords[0]+1][5]
$aIPPP[0][0]=$aRecords[0]
 
For $i=1 To $aRecords[0]
    If StringInStr($aRecords[$i], '|') Then
        $aRec=StringSplit($aRecords[$i], '|')
        $aRecords[$i]=$aRec[1]
        $aIPPP[$i][4]=$aRec[2]
        $aIPPP[$i][0]=GUICtrlCreateListViewItem($aRecords[$i]&'|||'&$aRec[2],$hListView)
        GUICtrlSetState($aIPPP[$i][0],1)
    Else
        $aIPPP[$i][0]=GUICtrlCreateListViewItem($aRecords[$i],$hListView)
        GUICtrlSetState($aIPPP[$i][0],1)
    EndIf
    $aIPPP[$i][1]=$aRecords[$i]
Next
EndFunc
 
Func _MsgFile()
    $ipinp01=1
    $ipinp02=0
    $GuiPos = WinGetPos($Gui)
    GUISetState(@SW_DISABLE, $Gui)
    
    $Gui1 = GUICreate('Выбираем диапазон IP', 185, 70,$GuiPos[0]+60, $GuiPos[1]+$GuiPos[3]-210, -1, 0x00000080,$Gui)
    GUICtrlCreateLabel('От', 10, 12, 15, 17)
    $ipinp1=GUICtrlCreateInput('192.168.30.0', 25, 10, 100, 20)
    GUICtrlCreateLabel('до', 130, 12, 15, 17)
    $ipinp2=GUICtrlCreateInput('255', 145, 10, 30, 20)
    $Ok=GUICtrlCreateButton ('Ok', 50, 40, 80, 22)
    GUISetState(@SW_SHOW, $Gui1)
$msg = $Gui1
    While 1
      $msg = GUIGetMsg()
      Select
        Case $msg = $Ok
            $ipinp01=GUICtrlRead($ipinp1)
            $ipinp02=GUICtrlRead($ipinp2)
            ContinueCase
        Case $msg = -3
            $msg = $Gui
            GUIDelete($Gui1)
            WinActivate($Gui)
            GUISetState(@SW_ENABLE, $Gui)
            ExitLoop
        EndSelect
    WEnd
EndFunc
 
Func _ConnectFTP()
    $Ping=Ping($IP, $PingInp0)
    If $Ping Then
        TCPConnect($IP, $Port0)
        If @error And MsgBox(4, "Сообщение", 'Сервер '&$IP&' : '&$Port0&' недоступен,'&@CRLF&' всё равно продолжить?')=7 Then
            TCPShutdown()
            Return SetError(1)
        EndIf
    Else
        If MsgBox(4, "Сообщение", 'Сервер '&$IP&' : '&$Port0&' недоступен,'&@CRLF&' всё равно продолжить?')=7 Then
            TCPShutdown()
            Return SetError(1)
        EndIf
    EndIf
    Return SetError(0)
EndFunc
 
Func _ConnectHTTP()
    $Ping=Ping($IP, $PingInp0)
    If @error And MsgBox(4, "Сообщение", 'Хост '&$IP&' недоступен,'&@CRLF&' всё равно продолжить?')=7 Then
        TCPShutdown()
        Return SetError(1)
    EndIf
        
    $iSocket = TCPConnect($IP, $Port0)
    If @error And MsgBox(4, "Сообщение", 'Сервер '&$IP&' : '&$Port0&' недоступен,'&@CRLF&' всё равно продолжить?')=7 Then
        TCPShutdown()
        Return SetError(1)
    EndIf
     
    Local $sCommand = "HEAD / HTTP/1.1" & @CRLF & _
    "Host: " & $IP & @CRLF & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8" & @CRLF & _
    "Referer: " & $IP & @CRLF & _
    "Connection: close" & @CRLF & @CRLF
     
    Local $iBytesSent = TCPSend($iSocket, $sCommand)
    If $iBytesSent = 0 Then Return SetError(2, @error, 0)
    Local $sRecv = "", $sCurrentRecv
     
    While 1
        $sCurrentRecv = TCPRecv($iSocket, 16)
        If @error <> 0 Then ExitLoop
        If $sCurrentRecv <> "" Then $sRecv &= $sCurrentRecv
    WEnd
     
    TCPCloseSocket($iSocket)
    Return StringRegExp($sRecv, "(?i)HTTP/\d.\d (200|301)") = 1
EndFunc
 
Func _Sort($hWnd, $nItem1, $nItem2, $nColumn)
 
    ; Switch the sorting direction
    If $nColumn = $nCurCol Then
        If Not $bSet Then
            $nSortDir = $nSortDir * -1
            $bSet = 1
        EndIf
    Else
        $nSortDir = 1
    EndIf
    $nCol = $nColumn
 
    $val1   = GetSubItemText($hListView, $nItem1, $nColumn)
    $val2   = GetSubItemText($hListView, $nItem2, $nColumn)
 
    ; If it is the 3rd colum (column starts with 0) then compare the dates
    If $nColumn = 2 Then
        $val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
        $val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
    EndIf
 
    $nResult = 0        ; No change of item1 and item2 positions
 
    If $val1 < $val2 Then
        $nResult = -1   ; Put item2 before item1
    ElseIf  $val1 > $val2 Then
        $nResult = 1    ; Put item2 behind item1
    EndIf
 
    $nResult = $nResult * $nSortDir
 
    Return $nResult
EndFunc
 
 
; Retrieve the text of a listview item in a specified column
Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
    Local $stLvfi       = DllStructCreate("uint;ptr;int;int[2];int")
    DllStructSetData($stLvfi, 1, $LVFI_PARAM)
    DllStructSetData($stLvfi, 3, $nItemID)
 
    Local $stBuffer     = DllStructCreate("char[260]")
 
    $nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));
 
    Local $stLvi        = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")
 
    DllStructSetData($stLvi, 1, $LVIF_TEXT)
    DllStructSetData($stLvi, 2, $nIndex)
    DllStructSetData($stLvi, 3, $nColumn)
    DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
    DllStructSetData($stLvi, 7, 260)
 
    GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));
 
    $sItemText  = DllStructGetData($stBuffer, 1)
 
    $stLvi      = 0
    $stLvfi     = 0
    $stBuffer   = 0
 
    Return $sItemText
EndFunc
 
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
 
Func _About()
$LngTitle='Connection'
$LngAbout='О программе'
$LngVer='Версия'
$LngSite='Сайт'
$GuiPos = WinGetPos($Gui)
GUISetState(@SW_DISABLE, $Gui)
$font="Arial"
    $Gui1 = GUICreate($LngAbout, 270, 180,$GuiPos[0]+5, $GuiPos[1]+$GuiPos[3]-315, -1, 0x00000080,$Gui)
    GUISetBkColor (0xf8c848)
    GUICtrlCreateLabel($LngTitle, 0, 20, 270, 23, 0x01)
    GUICtrlSetFont (-1,15, 600, -1, $font)
    GUICtrlSetColor(-1,0xa21a10)
    GUISetFont (9, 600, -1, $font)
    GUICtrlCreateLabel($LngVer&' 0.3  12.10.2010', 55, 100, 210, 17)
    GUICtrlCreateLabel($LngSite&':', 55, 115, 40, 17)
    $url=GUICtrlCreateLabel('http://azjio.ucoz.ru', 92, 115, 170, 17)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetColor(-1, 0x0000ff)
    GUICtrlCreateLabel('WebMoney: R939163939152', 55, 130, 210, 17)
    GUICtrlCreateLabel('Copyright AZJIO © 2010', 55, 145, 210, 17)
    GUISetState(@SW_SHOW, $Gui1)
$msg = $Gui1
    While 1
      $msg = GUIGetMsg()
      Select
        Case $msg = $url
            ShellExecute ('http://azjio.ucoz.ru')
        Case $msg = -3
            $msg = $Gui
            GUIDelete($Gui1)
            WinActivate($Gui)
            GUISetState(@SW_ENABLE, $Gui)
            ExitLoop
        EndSelect
    WEnd
EndFunc

Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 00:51 11-10-2010 | Исправлено: AZJIO, 06:56 12-10-2010
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
gyra (23-01-2020 10:51): AutoIT (Часть 4)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru