Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


Сообщения: 36560
Благодарности: 6694


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:02, 05-02-2006

 

Пользователь


Сообщения: 143
Благодарности: 24

Профиль | Отправить PM | Цитировать


Не могу понять как сделать:
У меня есть код хтмл странички, в нём я ищу <script>top.setHP(323,323,120); </script> при чем в этой строчке меняются только цифры, <script>top.setHP(........); </script> как это сделать??

Отправлено: 22:15, 05-03-2008 | #191



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Maza Faka

Ветеран


Сообщения: 604
Благодарности: 133

Профиль | Отправить PM | Цитировать


HORRIBLE
Возвращает массив совпадений:
Код: Выделить весь код
#include <Array.au3>

$ReadFile = FileRead(@ScriptDir & "\test.html")
If @error Then Exit

$result = StringRegExp($ReadFile, "(?i)(<script>top\.setHP\(.*\);\s*</script>)", 3)

_ArrayDisplay($result)

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:33, 06-03-2008 | #192


Аватара для Котяра

Ветеран


Сообщения: 2907
Благодарности: 331

Профиль | Отправить PM | Цитировать


Нашел такой скрипт:
Код: Выделить весь код
#include <GUIConstants.au3>
 
$Title = "About Info"
 
$MainLabel = "My program Name"
$CopyRLabel = "Copyright © " & @YEAR & " Company/Author. All rights reserved."
 
$NameURL1 = "App Web Page"
$URL1 = "http://www.autoitscript.com"
$NameURL2 = "Email"
$URL2 = "mailto:my_email@mail.com"
$NameURL3 = "Some additional link"
$URL3 = "http://personalwebpafe.com"
$LinkColor = 0x0000FF
$BkColor = 0xFFFFFF
 
$ParentGui = GUICreate('Parent For "About Program" Demo', 200, 100)
 
$Menu = GUICtrlCreateMenu("Help")
$AboutItem = GUICtrlCreateMenuitem("About...", $Menu)
 
GUISetState()
 
While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $AboutItem
            _AboutGUI($Title, $MainLabel, "Program version: " & @LF & "v1.0", $CopyRLabel, _
                $NameURL1, $URL1, $NameURL2, $URL2, $NameURL3, $URL3, $ParentGui, @AutoItExe, $LinkColor, $BkColor, 500, 300)
    EndSwitch
WEnd
 
Func _AboutGUI($Title, $MainLabel, $TextLabel, $CopyRLabel, $NameURL1, $URL1, $NameURL2, $URL2, $NameURL3, $URL3, $Parent=0, $IconFile="", $LinkColor=0x0000FF, $BkColor=0xFFFFFF, $Width=300, $Height=120, $Left=-1, $Top=-1, $Style=-1, $ExStyle=-1)
    Local $OldEventOpt = Opt("GUIOnEventMode", 0)
    Local $OldRunErrOpt = Opt("RunErrorsFatal", 0)
    Local $About_GUI, $LinkTop=120, $About_Msg, $CurInfo
    Local $CurIsOnCtrlArr[1]
 
        Local $LinkVisitedColor[4] = [3, $LinkColor, $LinkColor, $LinkColor]
    Local $LinkLabel[4]
 
        WinSetState($Parent, "", @SW_DISABLE)
 
        If $ExStyle = -1 Then $ExStyle = ""
    $About_GUI = GUICreate($Title, $Width, $Height, $Left, $Top, $Style, 0x00000080+$ExStyle, $Parent)
    GUISetBkColor($BkColor)
 
    GUICtrlCreateLabel($MainLabel, 0, 20, $Width, 25, 1)
    GUICtrlSetFont(-1, 14)
 
    GUICtrlCreateIcon($IconFile, 0, 10, 20)
    GUICtrlSetState(-1, 128)
 
        GUICtrlCreateGraphic(5, 75, $Width-10, 3, $SS_ETCHEDFRAME)
 
        For $i = 1 To 3
        $LinkLabel[$i] = GUICtrlCreateLabel(Eval("NameURL" & $i), $Width-150, $LinkTop, 145, 15, 1)
        GUICtrlSetCursor(-1, 0)
        GUICtrlSetColor(-1, $LinkColor)
        GUICtrlSetFont(-1, 9, 400, 0)
        GUICtrlSetTip(-1, Eval("URL" & $i))
        $LinkTop += 30
    Next
 
    GUICtrlCreateLabel($TextLabel, 10, 100, $Width-155, 35)
    GUICtrlSetFont(-1, 10, 600, 0, "Tahoma")
 
        GUICtrlCreateLabel($CopyRLabel, 0, $Height-20, $Width, -1, 1)
    GUICtrlSetColor(-1, 0x969696)
    GUICtrlSetState(-1, 128)
 
        GUISetState(@SW_SHOW, $About_GUI)
 
    While 1
        $About_Msg = GUIGetMsg()
 
                Switch $About_Msg
            Case -3
                ExitLoop
            Case $LinkLabel[1], $LinkLabel[2], $LinkLabel[3]
                GUISetCursor(0, 1, $About_GUI)
                $CurInfo = GUIGetCursorInfo($About_GUI)
                If $About_Msg = $LinkLabel[1] Then $i = 1
                If $About_Msg = $LinkLabel[2] Then $i = 2
                If $About_Msg = $LinkLabel[3] Then $i = 3
 
                                While $CurInfo[2] = 1
                    $CurInfo = GUIGetCursorInfo($About_GUI)
                    Sleep(10)
                WEnd
 
                                If $CurInfo[4] = $About_Msg Then
                    GUISetCursor(-1, 0, $About_GUI)
                    $LinkVisitedColor[$i] = 0xAC00A9
                    GUICtrlSetColor($About_Msg, $LinkVisitedColor[$i])
                    ShellExecute(Eval("URL" & $i))
                EndIf
                GUISetCursor(-1, 0, $About_GUI)
        EndSwitch
 
                Sleep(10)
        ControlHover($About_GUI, $LinkLabel[1], 1, $CurIsOnCtrlArr, 0xFF0000, $LinkVisitedColor[1])
        ControlHover($About_GUI, $LinkLabel[2], 2, $CurIsOnCtrlArr, 0xFF0000, $LinkVisitedColor[2])
        ControlHover($About_GUI, $LinkLabel[3], 3, $CurIsOnCtrlArr, 0xFF0000, $LinkVisitedColor[3])
    WEnd
    WinSetState($Parent, "", @SW_ENABLE)
    GUIDelete($About_GUI)
    GUISwitch($Parent)
    Opt("GUIOnEventMode", $OldEventOpt)
    Opt("RunErrorsFatal", $OldRunErrOpt)
EndFunc
 
Func ControlHover($hWnd, $CtrlID, $CtrlNum, ByRef $CurIsOnCtrlArr, $HoverColor=0xFF0000, $LinkColor=0x0000FF)
    Local $CursorCtrl = GUIGetCursorInfo($hWnd)
    ReDim $CurIsOnCtrlArr[UBound($CurIsOnCtrlArr)+1]
    If $CursorCtrl[4] = $CtrlID And $CurIsOnCtrlArr[$CtrlNum] = 1 Then
        GUICtrlSetFont($CtrlID, 9, 400, 6)
        GUICtrlSetColor($CtrlID, $HoverColor)
        $CurIsOnCtrlArr[$CtrlNum] = 0
    ElseIf $CursorCtrl[4] <> $CtrlID And $CurIsOnCtrlArr[$CtrlNum] = 0 Then
        GUICtrlSetFont($CtrlID, 9, 400, 0)
        GUICtrlSetColor($CtrlID, $LinkColor)
        $CurIsOnCtrlArr[$CtrlNum] = 1
    EndIf
EndFunc
Выводит список дисков и свободное место. Как доделать его, чтобы добавить столбец "total size" с полным объемом диска?

Отправлено: 23:44, 06-03-2008 | #193


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27,
Цитата:
ИМХО оно не стоит того - эти диалоги только помогают визуально инициализировать требуемые структуры, но использовать их для последующей печати AFAIK средствами AutoIT не получится.
Это я скорее пытался практиковать навыки в Dll*, чем получить конкретные результаты

Цитата:
в MSDN сказано, что для стандартных Verbs всегда существует универсальный идентификатор, не зависящий от языка... и видимо без знака "&", во всяком случае для "Print" у меня сработало.
У меня тоже сработало, спасибо. А случаем не вкурсе, как получать эти самые уникальные идентификаторы?

P.S
Сорри за поздний ответ, много дел было.


...

Котяра,
Цитата:
Выводит список дисков и свободное место.
Хм... скрипт то мой, и он совсем не делает этих действий, это пример диалога «О программе»

Для вывода информации о дисках и свободного места на них, используй функции «DriveGetDrive(), DriveGetLabel(), DriveSpaceFree(), DriveSpaceTotal() и т.п.».

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 01:08, 07-03-2008 | #194


Аватара для Котяра

Ветеран


Сообщения: 2907
Благодарности: 331

Профиль | Отправить PM | Цитировать



Сам смеюсь с себя....
Скрипт вот этот:
Код: Выделить весь код
$Gui = GUICreate("Drives List", 350, 300)
 
$ListView = GUICtrlCreateListView("Drives|Free Space (MB)", 20, 50, 310, 200)
 
$DrivesArr = DriveGetDrive("Fixed")
If IsArray($DrivesArr) Then
    For $i = 1 To $DrivesArr[0]
        $FreeSpace = DriveSpaceFree($DrivesArr[$i])
        GUICtrlCreateListViewItem(StringUpper($DrivesArr[$i]) & "\|" & Round($FreeSpace, 1), $ListView)
    Next
EndIf
 
GUISetState()
 
While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case Else
            ;;;
    EndSwitch
WEnd
А тот, если можете, уберите...

Да я перепутал - не то вставил с буфера обмена

Вопрос: можно ли "научить" скомпилированный скрипт понимать параметры командной строки. Например, у меня есть скрипт инсталляции и хочу, чтобы при запуске "E:\install.exe /s" (install.exe - скомпиленный скрипт) действие скрипта менялось.

Отправлено: 15:00, 07-03-2008 | #195


Аватара для Maza Faka

Ветеран


Сообщения: 604
Благодарности: 133

Профиль | Отправить PM | Цитировать


Цитата Котяра:
можно ли "научить" скомпилированный скрипт понимать параметры командной строки »
Смотри здесь

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 16:23, 07-03-2008 | #196


Аватара для Котяра

Ветеран


Сообщения: 2907
Благодарности: 331

Профиль | Отправить PM | Цитировать


Я "рою" тему создания с помощью AutoIt инсталлятора. Так вот, для этого необходимо разработать скрипты Install и Uninst. Назначение скрипта Install - установить программу, а Uninst - удалить ее. Скрипт Uninst должен копироваться в папку программы скриптом Install. Так вот, для этого нужно использовать функции FileCopy, FileDelete (FileRecycle), RegRead, RegWrite, RegDelete. Используя их можно гибко управлять установкой. Сегодня нашел еще один способ - FileInstall. Функция выглядит так:
Код: Выделить весь код
FileInstall("E:\source\readme.html", "C:\destination\readme.html")
Она позволяет СЖАТЬ файл в скрипт при компиляции. Т.е. компиленый Install и станет дистрибутивом! А если использовать FileCopy, потом сжимаем Install, Uninst и файлы программы в 7z, делаем SFX с помощью альтернативного SFX-модуля с таким комментарием:
Код: Выделить весь код
;!@Install@!UTF-8!
GUIFlags="8"
RunProgram="Install.exe"
GUIMode="2"
HelpText="Example v1.00"
ErrorTitle="Ошибка установки Example v1.00"
;!@InstallEnd@!
Вряд ли что-то в этом комментарии нужно пояснять.
Сами скрипты (с FileCopy) я приводил в прошлых сообщениях.

Нужно добавить в скрипты инсталлятора #NoTrayIcon, т.к. лишние иконки в трее ни к чему

Отправлено: 21:28, 08-03-2008 | #197


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


ИЗвените. но я вообще не понял как эта программа работает.
мне нужно что бы в определеные места нажимала мышка...
с циклом.
ну к примеру в 10 местах нажимает...потом ещё в 1 месте и опять в тех же 10 местах. вот такое можно сделать?

Отправлено: 15:25, 10-03-2008 | #198


Покинул форум


Сообщения: 3254
Благодарности: 893

Профиль | Цитировать


Creat0R, Как в скрипте выполнить регистрацию dll библиотеки например:

%windir%\system32\regsvr32.exe "%currentdir%Test.dll"

Отправлено: 15:47, 10-03-2008 | #199


Аватара для Maza Faka

Ветеран


Сообщения: 604
Благодарности: 133

Профиль | Отправить PM | Цитировать


Цитата DENoszone:
мне нужно что бы в определеные места нажимала мышка...
с циклом. »
Велкам!
Пример:
Код: Выделить весь код
Opt("MouseClickDelay", 50) ;Задаём паузу между кликами мыши в 50 милисекунд

HotKeySet("{Esc}", "_Exit") ;задаём горячую клавишу (Escape) для завершения скрипта

Global $aMousePos[11][2] ;создаём двумерный массив

$aMousePos[0][0] = 10 ;указываем кол-во элементов

;Заполняем 0 размерность Х-координатами
$aMousePos[1][0] = 100
$aMousePos[2][0] = 200
$aMousePos[3][0] = 300
$aMousePos[4][0] = 400
$aMousePos[5][0] = 500
$aMousePos[6][0] = 600
$aMousePos[7][0] = 700
$aMousePos[8][0] = 800
$aMousePos[9][0] = 900
$aMousePos[10][0] = 1000

;Заполняем 1 размерность Y-координатами
$aMousePos[1][1] = 50
$aMousePos[2][1] = 100
$aMousePos[3][1] = 150
$aMousePos[4][1] = 200
$aMousePos[5][1] = 250
$aMousePos[6][1] = 300
$aMousePos[7][1] = 350
$aMousePos[8][1] = 400
$aMousePos[9][1] = 450
$aMousePos[10][1] = 500

;запускаем цикл
While 1
    For $i = 1 To $aMousePos[0][0]
        MouseClick("left", $aMousePos[$i][0], $aMousePos[$i][1]) ;кликаем в 10 разных местах
    Next

    MouseClick("left", 10, 10, 1, 50) ;потом ещё в 1 месте :)
    Sleep(50)
WEnd

Func _Exit()
    $aMousePos = 0
    Exit
EndFunc


Цитата prokazzza:
Как в скрипте выполнить регистрацию dll библиотеки »
Надеюсь, что Creat0R не обидится, если отвечу я
Код: Выделить весь код
Run(@SystemDir & "\regsvr32.exe " & '"' & @ScriptDir & "\Test.dll")

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:42, 10-03-2008 | #200



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ FOX RED Защита компьютерных систем 67 21-11-2007 15:05
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход