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

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

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

Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

   

AddXL

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

AutoIt3

 
Домашняя страница: http://www.autoitscript.com
Страница загрузки: http://www.autoitscript.com/autoit3/downloads.php
 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя - симуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши и управления окнами и его визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Справочник по командам rundll32
  • Русский справочник по API-функциям
  • Помощь по Регулярным выражениям
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf)
     
    Инструметы для AutoIt:
  • AutoIt3Wrapper [Страница закачки] - Программа для компилляции скрипта с дополнительными возможностями (добавление иконки, описании и т.п).
  • Koda (724 Kb) - Визуализация работы с GUI - аналог Visual Basic.
  • CodeWizard (400 Kb) - нечто простенькое на вариант Koda.
  • AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt код.
  • ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
  • API Constants (1042 Kb) - Утилита для просмотра всех констант API-Функции и не только.
  • Страница закачки утилит которые идут в отдельной поставке редактора SciTE.
  • AutoIt меню для браузера Opera
     
    Готовые скрипты и программы с открытым кодом на AutoIt:
  • Коллекция AutoIt скриптов от Sanja Alone
  • Коллекция скриптов на http://msfn.org
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Desktop Icons Restorator - Скрипт-Программа для сохранения/восстановления позиции иконок р.стола.
  • CaptureIt - Утилита предназначена для захвата изображений с вашего экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста
  • Скрипт расскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger)
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значёк в области уведомления)
  • Пример создания своего мастера (Wizard)
  • Метод позволяющий запускать код VBS не создавая временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за б.обмена с заменой неподдерживаемых в имени файла символов
  • Пример использования меню с иконками (ModernMenu.au3) -> Список программ в меню значка в системном трее
     
  • Как по PID процесса вычислить путь запускаемого файла
  • Получение IP по подключенному сокету
     
    Отдельные функции (UDF):
  • Функции Отключения/Подключения к Интернету
  • Функция проверки подключения к Интернету
  • Функция для получения структуры директории включая подкаталоги
  • Функция для поиска в файлах
  • Функция для смены разрешения экрана
  • Функция для смены раскладки клавиатуры в определённом окне
  • Функция для получения списка процессов с допол. инфой (путь к исполняемому файлу и др.)
  • Функции и пример для отображения детального процесса закачки файла
  • Функция (и пример использования) для отображения стильного диалога “О Программе” - [Усовершенствованная версия]
  • Функция возвращает пронумерованный список всех классов определённого окна + функция получения хендлов для этих классов
  • Функция для получения заголовка окна (или его идентификатора) по ID процесса (PID)
  • Функция _StringIsUTF8Format() + _StringToUTF() - Первая проверяет если строка содержится в UTF-8 формате, вторая преобразовывает строку в UTF-8 формат
  • Функция _FileOpenDialogEx - Возвращает массив (или строку) с полными путями к выбранным файлам
  • _AU3_Lib* Функции - Предназначены для обработки подключаемых библиотек через #include
  • Функция транслитерации строки
  • Расширенная библиотека для работы с реестром
     
    За шапкой следит ViSiToR  

  • Всего записей: 6 | Зарегистр. 24-11-2005 | Отправлено: 13:20 24-11-2005 | Исправлено: Maz, 11:50 17-04-2017
    Hackproof



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я бы сказал, что тут как раз пригодится вывод ipconfig /all в файл, который потом можно порубить на строки, но я люблю всё делать просто и надежно. Наверняка есть более элегантный, и длинный способ.
     
    И мой вопрос - можно ли в скрипте реализовать паралелльное выполнение двух функций одновременно, чтобы загрузить двухядреный процессор?
    Вопрос ради интереса, вдруг пригодится...

    Всего записей: 106 | Зарегистр. 24-05-2008 | Отправлено: 08:29 17-07-2008 | Исправлено: Hackproof, 08:29 17-07-2008
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy
    Кое какую информацию можно получить из WMI класса "Win32_NetworkAdapterConfiguration"

    Код:
    Dim $strComputer = ".", $string, $strIPAddress, $IPAddress, $IPSubnet, $strIPSubnet, $DefaultIPGateway, $strDefaultIPGateway
     
    $objWMIService
    = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
    $colItems = $objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")
     
    For $objItem In $colItems
        $string
    &= @LF
        $string &= "Caption: " & $objItem.Caption & @LF
        $string &= "Description: " & $objItem.Description & @LF
     
        If UBound($objItem.IPAddress) > 0 Then
            For
    $IPAddress In $objItem.IPAddress
                $strIPAddress &= $IPAddress & "; "
            Next
            $string &= "IPAddress: " & StringTrimRight($strIPAddress, 2) & @LF
        EndIf
     
        If
    UBound($objItem.IPSubnet) > 0 Then
            For
    $IPSubnet In $objItem.IPSubnet
                $strIPSubnet &= $IPSubnet & "; "
            Next
            $string &= "IPSubnet: " & StringTrimRight($strIPSubnet, 2) & @LF
        EndIf
     
        If
    UBound($objItem.DefaultIPGateway) > 0 Then
            For
    $DefaultIPGateway In $objItem.DefaultIPGateway
                $strDefaultIPGateway &= $DefaultIPGateway & "; "
            Next
            $string &= "DefaultIPGateway: " & StringTrimRight($strDefaultIPGateway, 2) & @LF
        EndIf
     
        $string &= "DNSDomain: " & $objItem.DNSDomain & @LF
        $string &= "DNSHostName: " & $objItem.DNSHostName & @LF
        $string &= "MACAddress: " & $objItem.MACAddress & @LF
    Next
     
    MsgBox(0, "", $string)

    Дополнительную информацию смотри здесь:
    Script Repository: Networking Win32_NetworkAdapterConfiguration Class

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:52 17-07-2008
    SysLam



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

    Цитата:
    можно ли в скрипте реализовать паралелльное выполнение двух функций одновременно

    многопоточности от скриптов ожидать не приходится, но есть разработка для синхронизации работы нескольких скриптов в одну задачу: http://www.autoitscript.com/forum/index.php?showtopic=29326

    Всего записей: 50 | Зарегистр. 05-10-2005 | Отправлено: 09:08 17-07-2008 | Исправлено: SysLam, 09:09 17-07-2008
    Hackproof



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть sql-сервер, и приложение, работающее с ним. Проблема в том, что оно работает только через именованный канал (pipe), и sql должен находиться на одной машине с ним. По некоторым причинам это сильно напрягает. Можно ли сделать некий прозрачный переходник, у которого с одной стороны на входе будет pipe, а с другой - сетевое соединение на sql-сервер, стоящий на удаленном компе?
    Создал пайп, сокет, а как их подружить - никаких мыслей...

    Всего записей: 106 | Зарегистр. 24-05-2008 | Отправлено: 10:26 17-07-2008 | Исправлено: Hackproof, 12:51 17-07-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Maza Faka, отличное решение, спасибо.
    Hackproof, напиши, пож, поподробней, на всякий случай - как прочесть данные из ipconfog и сохранить в файл.
     
    и еще парочка вопросов,
    1. как организовать загрузку сайта с передачей странице определенного текста, к примеру так http://www.mysite.ru/index.php?myvar=<вот здесь вставить необходимый текст для загрузки на сайт>. И все это необходимо сделать скрыто для пользователя. Есть варианты? (имею ввиду не грузить сркытый браузер).
     
    2. Maza Faka, не подскажешь еще как вытащит название сетевого подключения, которое отображается в папке "сетевые подключения", в WMI class не нашел. А Caption и Description показывают реальные названия адаптеров...
     
    3. может я просто не нашел в справочнике....но есть ли функции отправки почты без стандартного почтового клиента? есть _INetSmtpMail, что очень радует, а вот pop не нашел, как отправлять то?

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 23:47 17-07-2008 | Исправлено: sproxy, 04:39 18-07-2008
    Maza Faka



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

    Цитата:
    как вытащит название сетевого подключения

    Попробуй так:

    Код:
    #include <Array.au3> ;only for _ArrayDisplay()
     
    $avNetworkConnections = _GetNetwork_Connections()
     
    _ArrayDisplay($avNetworkConnections)
     
    Func _GetNetwork_Connections()
        Local Const $NETWORK_CONNECTIONS = 49
        Local $objShell = ObjCreate("Shell.Application")
        Local $objFolder = $objShell.Namespace($NETWORK_CONNECTIONS)
        Local $objFolderItem = $objFolder.Self
        Local $aRetArr[2] = [1, $objFolderItem.Path]
        Local $ColItems = $objFolder.Items
        Local $iUbound = 0
     
        For $objItem In $ColItems
            $iUbound
    = UBound($aRetArr)
            ReDim $aRetArr[$iUbound+1]
            $aRetArr[$iUbound] = $objItem.Name
        Next
     
        $aRetArr[0] =$iUbound
        Return $aRetArr
    EndFunc

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:05 18-07-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Maza Faka, отлично работает, спасибо!
    осталось только сплюсовать с инфо ip, но это разберусь ))
    По другим вопрос (№ 1 и № 3) не в курсе?

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 09:19 18-07-2008
    ziherun

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте всем не подскажете как реализовать такой скрипт.
    Например на экране есть пиксель одного цвета и чтобы при изменении цвета этого пикселя скрипт наживал на кнопку в нективном окне. И хотелось бы уточнить такой вопрос может быть кто знает такую программу UOpilot она те же использует скрипты что и Autoit? Всем заранее спасибо за ответы!

    Всего записей: 6 | Зарегистр. 18-07-2008 | Отправлено: 09:49 18-07-2008
    asdfzxcv



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем!
    Подскажите пожалуйста как в трей мению сделать менюшку:
    1 нажал на строку "АВТОЗАПУСК" значения в реестр прописались, галочка на автозапуске стоит
    2 нажал ещё раз "АВТОЗАПУСК" значения из реестра стёрлись и галочка убралась соотественно
     
    (аналогично стандартной функции паузы)
    немогу найти похожий пример в хелпе.
     
    и ещё почиму то у меня менюки в трее организовываются хорошо только через  
     TrayItemSetOnEvent
    притом с вызовом функции действия а большинство примеров в хелпе показано через цикл while- wend , а если я этот цикл вставляю в начале всего кода то у меня мой скрипт дальше перестаёт работать так как всё зацыкливается на первом цикле менюшке в трее.
    вот так...

    Всего записей: 57 | Зарегистр. 08-04-2006 | Отправлено: 10:05 18-07-2008
    arr1val

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите опять :
    Есть функция:

    Код:
    func mm($a, $b)
     
     
    Run(@ComSpec & ' /c For /R "\\"' & $a & '"\D$\" %i In (*.xlsx;*.xlsm;*.docx;*.docm;*.rtf;*.doc;*.xls;*.pdf;*.ppt;*.msg) Do echo %i | findstr /i /v "\<CashProject \<Winnt \<шаблон \<Program">nul && MkDir "%i" "U:\"' & $b & '"\Removed\%~pi"', '', @SW_HIDE)  
     
    Run(@ComSpec & ' /c For /R "\\"' & $a & '"\D$\" %i In (*.xlsx;*.xlsm;*.docx;*.docm;*.rtf;*.doc;*.xls;*.pdf;*.ppt;*.msg) Do echo %i | findstr /i /v "exe\>">nul && copy "%i" "U:\"' & $b & '"\Removed\%~pnxi"', '', @SW_HIDE)
     
     
    EndFunc

    Прошлый раз с Вашей помощью подставлял туда значения из ини файла формата:

    Код:
    [IP]
    1 = 192.168.1.1|192.168.1.2|192.168.1.3
    [DIR]
    1 = Dir1|Dir2|Dir3

    Где значения построчно подставлялись в зависимости от выбранного чекбокса.
    Теперь понадобилось тоже самое, только без всякого ГУИ. Как прописать, чтобы подставлялись все значения указанные в ИНИ(формат которого желательно сохранить (пронумерованные строки; | - как разделитель)) Т.е. должен получится скриптик который будет отрабатывать вышеуказанную функцию, подставляя поочередно все значения из ини.

    Всего записей: 43 | Зарегистр. 01-02-2008 | Отправлено: 11:47 18-07-2008 | Исправлено: arr1val, 12:02 18-07-2008
    Maza Faka



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

    Цитата:
    Например на экране есть пиксель одного цвета и чтобы при изменении цвета этого пикселя скрипт наживал на кнопку в нективном окне.

    Пример:

    Код:
    Run("calc.exe")
     
    WinWait("[Class:SciCalc]")
     
    WinSetState("[Class:SciCalc]", "", @SW_MINIMIZE)
     
    $hWnd = WinGetHandle("")
     
    $checksum = PixelChecksum(0, 0, 50, 50) ;Указываем координаты в которых будем отслеживать изменение контрольной суммы пикселей
     
    While 1
        If $checksum <> PixelChecksum(0,0, 50, 50, 1, $hWnd) Then ;Если контрольная сумма изменилась...
            $checksum = PixelChecksum(0,0, 50, 50, 1, $hWnd) ;запоминаем новое значение контрольной суммы...
            ControlClick("[Class:SciCalc]", "", "Button7") ;и нажимем кнопку 1 в калькуляторе
        EndIf
        Sleep(100)
    WEnd

     
    Добавлено:
    asdfzxcv

    Цитата:
    как в трей мению сделать менюшку

    Можно так:

    Код:
    #Include <Constants.au3>
     
    Opt("TrayMenuMode", 1 + 2)
    Opt("TrayOnEventMode", 1)
     
    $auto = TrayCreateItem("АВТОЗАПУСК")
    TrayItemSetOnEvent(-1, "_TrayEvent")
     
    $exit = TrayCreateItem("Выход")
    TrayItemSetOnEvent(-1, "_TrayEvent")
     
    While 1
        Sleep(100)
    WEnd
     
    Func
    _TrayEvent()
        Switch @TRAY_ID
            Case $auto
                If BitAND(TrayItemGetState($auto), $TRAY_CHECKED) Then
                    TrayItemSetState($auto, $TRAY_UNCHECKED)
                Else
                    TrayItemSetState($auto, $TRAY_CHECKED)
                    ;RegWrite() здесь производишь запись значения в реестр
                EndIf
            Case
    $exit
                Exit
        EndSwitch
    EndFunc

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:02 18-07-2008
    arr1val

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Уже сделал

    Всего записей: 43 | Зарегистр. 01-02-2008 | Отправлено: 14:47 18-07-2008
    asdfzxcv



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka спасибо.
     
    А как при повторном нажатии на ту же строчку АВТОЗАПУСК раздел бы удалялся из реестра.
    (что бы программу убрать из автозагрузки)
     
    И ещё я так понимаю ещё обстоит геморой о проверки в реестре значения что бы галочка автоматичесски показывала прописана уже программа или нет.
     
    Скорее всего я сделаю две мнюки одна добавить в автозапуск а другая удолить без дентификации уже прописанного в реестре.

    Всего записей: 57 | Зарегистр. 08-04-2006 | Отправлено: 15:49 18-07-2008
    Maza Faka



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

    Цитата:
    Скорее всего я сделаю две мнюки одна добавить в автозапуск а другая удолить без дентификации уже прописанного в реестре.

    Ну зачем же так некрасиво
    Пробуй:

    Код:
    #Include <Constants.au3>
     
    Global $RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
     
    Opt("TrayMenuMode", 1 + 2)
    Opt("TrayOnEventMode", 1)
     
    $auto = TrayCreateItem("АВТОЗАПУСК")
    TrayItemSetOnEvent(-1, "_TrayEvent")
     
    $exit = TrayCreateItem("Выход")
    TrayItemSetOnEvent(-1, "_TrayEvent")
     
    While 1
        Sleep(100)
    WEnd
     
    Func
    _TrayEvent()
        Switch @TRAY_ID
            Case $auto
                If BitAND(TrayItemGetState($auto), $TRAY_CHECKED) Then
                    TrayItemSetState($auto, $TRAY_UNCHECKED)
                    _AutostartEnableDisable(0)
                Else
                    TrayItemSetState($auto, $TRAY_CHECKED)
                    _AutostartEnableDisable()
                EndIf
            Case
    $exit
                Exit
        EndSwitch
    EndFunc
     
    Func
    _AutostartEnableDisable($sFlag = 1)
        Local $iValRead = RegRead($RegKey, "Calculator")
     
        If $sFlag = 1 Then
            If
    $iValRead = "" Then RegWrite($RegKey, "Calculator", "REG_SZ", @WindowsDir & "\calc.exe")
        Else
            If
    $iValRead <> "" Then RegDelete($RegKey, "Calculator")
        EndIf
    EndFunc
      ;==>_AutostartEnableDisable

     
    Есть вопросы? Спрашивай!

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:25 18-07-2008
    Basur



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Запускаю таким образом программы прописаные в ini
     

    Цитата:
    $ini = "il.ini"
     
    $Prog = IniReadSection($ini,"Programs" )
    $Pid = IniReadSection($ini,"PID" )
     
    For $i = 1 to $Prog[0][0] Step 1
    If ProcessExists($pid[$i][0])=0 Then Run($Prog[$i][1])
    Next

    Нужно чтобы в GUI перед запуском каждой программы создавался Label с текстом из $Prog[$i][0], но у меня что-то неполучается с координатами.

    ----------
    Ничто не свободно так, как мысль человека. (Девид Юм)

    Всего записей: 359 | Зарегистр. 15-04-2006 | Отправлено: 08:45 19-07-2008
    asdfzxcv



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    круто, спасибо)
    А ещё как то можно сделать проверку уже существующей записи в реестре, что бы после перезапуска скрипта (например после перезагрузки компа и запуска скрипта сного) эта галочка сама отображалась как бы индецируя что программа уже прописана в автозапуске,
    Идея была как бы в этом.
    Но всё равно скрипт оказался дастаточно сложный чем я думал.
    поэтому я и думаю мож и не стоит доводить уж всё до блеска)

    Всего записей: 57 | Зарегистр. 08-04-2006 | Отправлено: 17:24 19-07-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    нашел интересные ключи реестра,
    1) список только сетевых (LAN, WAN и т.д. подобных) адаптеров:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Adapters\
    2) настройки адаптеров (текущие данные по ip и т.д., к примеру если dial-up то будут данные, если dial up отключен - будут нули везде; интересно как с DHCP) (те адаптеры которые есть в этом списки и их нет в списке из ключа выше - это Dial Up и подобные):
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
    3) название адаптера:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\дальше по значениям из ключа 1 или можно брать из ключа 2 (но в ключе 2 есть некоторые ключи которых не будет в этом - в ключе 3 (dial up к примеру) ).
     
    перебор ключей через RegEnumKey и RegEnumVal.
     
    1) правильно ли я понимаю, что данные ключи постоянные для xp,
    т.е. они то не будут меняться (имею ввиду коренвые, именно те, что выше)?
     
    2) соответсвенно на не xp системе - 2k3, 2000 и т.д., тем более висте,
    эти ключи могут быть другие....?
     
    просто работая чере реестр я могу отсеят то что не нужно,
    а вот связать, таки, твои прдложения, Maza Faka,
    так и не получилось....т.к. делаю следующее:
    беру все названия из "Shell.Application", убераю мне явно не
    нужные, далее, по оставшимся нахожу их сетевые найтройки,
    и уже из настроек еще раз выкидываю не нужные.....
     
    а вот соединить "Shell.Application" и WMI класс NetworkAdapterConfiguration...
    Maza Faka, с помощью "Shell.Application", можно ли еще
    какие нибудь данные узнать о сетевом соединение, кроме его имение (.Name)? -
    что бы можно было его явно опознать....хоть тип....в общем что нить
    еще, что так же можно унать об этом сетевом соединение через WMI класс NetworkAdapterConfiguration
    или через реестр, и далее сопоставить данные между Shell и WMI, ?
     
    3) в общем как посоветуите, реально ли для xp, без ошибок и негативных
    последствий, реализовывать работу через реестр?
     
    4) и не уже ли не умеет AutoIt принимать почту ...и _закачивать_файлы_на_ftp?
     
    ===============================================
    + еще: Полностью работать только с реестром, без WMI - не удобно.
    За то, нашел Setting ID, это имя ключа в реестре и ID текущего адаптера (сетевого интерфейса).
    А с помощью WMI класс HNet_Connection ли Shell.Application (хотя вот его не смотрел, если он то же
    может вытащить Setting ID - то будет то же полезен) можно легко узнать название сетевого интерфейся,
    которое отображается в Сетевых подключениях. Все сетевые настройки можно узнать через
    Win32_NetworkAdapterConfiguration, НО есть один момент: если сетевая карта (т.д. устройство)
    выключенно - информация о его IP (и т.д. настройках) Win32_NetworkAdapterConfiguration не
    отображает. Вопрос - как же справиться с этим?  ...пока только по Setting ID брать информацию
    из реестра напрямую.....но чувству...должен быть способ и через WMI.
     
    ===============================================
    .....Ребята!! Посмотрите у себя мой скрипт, может быть это только у меня он ТАК зверски тормазит!!!???
    Может кто то сможет объснить почему и как исправить / переделать??
    au3 файл: http://webinweb.ru/ftp/get_ip_2.au3
    и он же в exe: http://webinweb.ru/ftp/get_ip_2.exe

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 18:32 19-07-2008 | Исправлено: sproxy, 09:48 21-07-2008
    asdfzxcv



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня нормально твой скрипт сработал, бе тормозов

    Всего записей: 57 | Зарегистр. 08-04-2006 | Отправлено: 13:02 21-07-2008
    Maza Faka



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

    Цитата:
    можно сделать проверку уже существующей записи в реестре, что бы после перезапуска скрипта (например после перезагрузки компа и запуска скрипта сного) эта галочка сама отображалась как бы индецируя что программа уже прописана в автозапуске

    Сделай так:

    Код:
    #Include <Constants.au3>
     
    Global $RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
     
    Opt("TrayMenuMode", 1 + 2)
    Opt("TrayOnEventMode", 1)
     
    $auto = TrayCreateItem("АВТОЗАПУСК")
    TrayItemSetOnEvent(-1, "_TrayEvent")
    If _AutostartEnableDisable(2) = True Then TrayItemSetState(-1, $TRAY_CHECKED)
     
    $exit = TrayCreateItem("Выход")
    TrayItemSetOnEvent(-1, "_TrayEvent")
     
    While 1
        Sleep(100)
    WEnd
     
    Func
    _TrayEvent()
        Switch @TRAY_ID
            Case $auto
                If BitAND(TrayItemGetState($auto), $TRAY_CHECKED) Then
                    TrayItemSetState($auto, $TRAY_UNCHECKED)
                    _AutostartEnableDisable(0)
                Else
                    TrayItemSetState($auto, $TRAY_CHECKED)
                    _AutostartEnableDisable()
                EndIf
            Case
    $exit
                Exit
        EndSwitch
    EndFunc
     
    Func
    _AutostartEnableDisable($sFlag = 1)
        Local $iValRead = RegRead($RegKey, "Calculator")
     
        Switch $sFlag
            Case 0
                If $iValRead <> "" Then RegDelete($RegKey, "Calculator")
            Case 1
                If $iValRead = "" Then RegWrite($RegKey, "Calculator", "REG_SZ", @WindowsDir & "\calc.exe")
            Case 2
                If $iValRead <> "" Then Return True
        EndSwitch
     
    EndFunc
      ;==>_AutostartEnableDisable

     
     
    Добавлено:
    Basur
    Создай глобальную переменную с Y-координатой и с каждым элементом массива прибавляй к этой переменной, ну скажем 30 пикселей, а Label-контролы создавай втавляя вместо Y-координаты эту самую переменную
     
    Добавлено:
    sproxy
    Насчёт FTP посмотри здесь

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 17:33 21-07-2008
    sproxy



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

    Цитата:
    У меня нормально твой скрипт сработал, бе тормозов

     
    asdfzxcv, а как быстро выводится список?
     
    т.к. у меня, после запуска, только через 7-8 секунд (!)...
    У меня на сайте sql быстрее работает чем тут на локалке WMI.
    Или это просто глюк...
     
    Maza Faka, BIG Спасибо! FTP обробатывается отлично.
     

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 22:33 21-07-2008 | Исправлено: sproxy, 22:41 21-07-2008
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

    Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » AutoIT (Часть 1)
    Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru