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

Ответить
 • Просмотры: 10
Аватара пользователя
amel27

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

Сообщение amel27 »

2All

ламерский вопрос: для чего используется оператор #region ?



2Creat0R

случайно наткнулся на его цветовое обозначение - INDIGO Изображение
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

HORRIBLE

Возвращает массив совпадений:



Код:

Код: Выделить всё

#include 
$ReadFile = FileRead(@ScriptDir & "\test.html")
If @error Then Exit
$result = StringRegExp($ReadFile, "(?i)(top\.setHP\(.*\);\s*)", 3)
_ArrayDisplay($result)
Аватара пользователя
amel27

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

Сообщение amel27 »

Нашел такой скрипт:



Код:

Код: Выделить всё

#include 
$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" с полным объемом диска?
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

amel27,


Цитата:



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



Это я скорее пытался практиковать навыки в Dll*, чем получить конкретные результаты Изображение




Цитата:



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



У меня тоже сработало, спасибо. А случаем не вкурсе, как получать эти самые уникальные идентификаторы?



P.S

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



...



Котяра,
Цитата:



Выводит список дисков и свободное место.



Хм... скрипт то мой, и он совсем не делает этих действий, это пример диалога «О программе» Изображение



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

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

Сообщение amel27 »

Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение

Сам смеюсь с себя....

Скрипт вот этот:



Код:

Код: Выделить всё

$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 - скомпиленный скрипт) действие скрипта менялось.
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

Цитата Котяра:



можно ли "научить" скомпилированный скрипт понимать параметры командной строки
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




Смотри
здесь
Аватара пользователя
amel27

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

Сообщение amel27 »

Я "рою" тему создания с помощью 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, т.к. лишние иконки в трее ни к чему Изображение
Аватара пользователя
Senka11

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

Сообщение Senka11 »

спасибо за помощ доделал все что хотел!!!!!!!!!!!



огромное спасибо активным участникам обсуждения!!!!!

к стати вот что вышло!!!

я добавил еще одно поле для номера крнфигурации машины!!!





PHP код:

Код: Выделить всё

MsgBox(0, "IP-Adress", @IPAddress1)
MsgBox(0, "Computer-name", @ComputerName)
$nEdit = InputBox("Input inventory ID", "Input inventory ID", "", "", -1,3,175,20)
$aEdit = InputBox("Input Everest ID", "Input Everest ID", "", "", -1,30,175,20)
$xEdit = InputBox("Введите тип конфигурации", "Введите тип конфигурации", "", "", -1,3,175,20)
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"

$Output=""
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)

If IsObj($colItems) then
For $objItem In $colItems

$Output =  "" & $objItem.MACAddress & @CRLF
next

FileWrite(FileOpen("\\192.168.0.254\public\senka1985\ipconfig.txt",1),"" &$nEdit& " "& $aEdit &" "&@IPAddress1 &" "&$Output &"тип" &$xEdit)
Endif 












спс!!!
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

amel27,


Цитата:



посмотрел - это баг SciTE



Ты используешь
последнюю
версию?

Если да, то нужно будет запостить баг репорт (я оставлю если что), думаю поправят.



Я себе пока не могу ставить ещё одну версию SciTE (или поверх), у меня паралельно стоит две версии с AutoIt'а (кстати я сделал себе удобный переключатель между версиями, если интересно, могу выложить Изображение), не хочу напортить текущие версии.



P.S

Я если честно не ожидал такого бесповоротного исхода Изображение , думал можно будет обойти эту проблему средствами скрипта...
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

Цитата DENoszone:



мне нужно что бы в определеные места нажимала мышка...

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




Велкам!

Пример:



Код:

Код: Выделить всё

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 библиотеки
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




Надеюсь, что Creat0R не обидится, если отвечу я Изображение



Код:

Код: Выделить всё

Run(@SystemDir & "\regsvr32.exe " & '"' & @ScriptDir & "\Test.dll")
Ответить

Вернуться в «AutoIt»