Ru-Board.club
← Вернуться в раздел «Программы»

» AutoIT

Автор: Tipulatoid
Дата сообщения: 09.11.2008 02:16
NIKZZZZ
по 1-ому пункту согласен. По 2-ому, не знаю, конкретно по этой утилите (я тестировал) у меня записывалось великое множество пустых строк, которых в выводе утилиты не было.
Автор: Leagnus
Дата сообщения: 09.11.2008 13:10
Здесь вкусная утилита вместе с исходниками.
Прямой линк на скачку.
Это поисковик стилей GUI-контролов для XP и Висты
Помогает в поиске:
• переменных стилей GUI-контролов
• нужных инклудов для старых скриптов
• слов/функций/переменных во всех инклуд-файлах

Одна из вкладок – конвертер между 16-ричным и RGB-представлением цвета с возможностью выбрать точную расширенную палитру

в динамическом меню утилиты встроены:
• примеры скриптов
• набор дополнительних exe-утилит для облегчения работы
• линки на интересные разаработки на оффоруме

инсталяции не требует, в реестр ничего не пишет
в архиве – флэш-видео – пример работы
Архив 8,5 метра
Автор: ViSiToR
Дата сообщения: 09.11.2008 13:34
NIKZZZZ 02:58 09-11-2008
Цитата:
пустой - ну и пусть добавляется, это ничего не изменит

Это меняет, т.к $line <> "" будет False если $line это пустая строка.

Leagnus 14:10 09-11-2008
Цитата:
Здесь вкусная утилита вместе с исходниками

+1. Сам недавно на неё наткнулся, понравился дизайн и методы приминения функции. Хотя в неё много лишнего напичкано
Автор: Tipulatoid
Дата сообщения: 09.11.2008 14:19
Стильный диалог "About" Visitor'a стал еще лучше
about.au3 :
Код: #include <GUIConstants.au3>
#include <StaticConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
; #Include <Array.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 $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)

Local $ThanksgivingStrings[4] = ["I want to express special gratitude to:", "AutoIt Team", "AutoIt Community", "... and many other good people"]
; Текст добавлять здесь
Local $ThanksgivingLabel[UBound ($ThanksgivingStrings)]


$sTransHeight = 3
$sTransValue = 20
For $x = 0 to $sTransValue
$stemp
= GUICreate("",230, $sTransHeight+2, 130, $sTransHeight * $x + 95 ,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$About_GUI)
GUISetState()
WinSetTrans($stemp,"",(255/$sTransValue)*(-1*($x-$sTransValue)))
Next

For
$x = 0 to $sTransValue
$stemp
= GUICreate("",230, $sTransHeight+2, 130, 265 - $sTransHeight * $x ,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$About_GUI)
GUISetState()
WinSetTrans($stemp,"",(255/$sTransValue)*(-1*($x-$sTransValue)))
Next


GUISetState(@SW_SHOW, $About_GUI)

$sScroll = 40*UBound ($ThanksgivingStrings)+100
$LabelHeight = 18
; расстояние между строками
$top1=600
While 1
Sleep
(15)
$sScroll +=1
For $f=0 to UBound ($ThanksgivingLabel) - 1
If $sScroll = 340 + $LabelHeight*$f Then
$ThanksgivingLabel[$f] =
GUICtrlCreateLabel($ThanksgivingStrings[$f],135, $top1 - $sScroll,220,$LabelHeight,$ES_CENTER)
GUICtrlSetFont ($ThanksgivingLabel[$f], 8, 400, 0, "Verdana") ; шрифт менять здесь
EndIf
Next

For
$w = 0 to UBound ($ThanksgivingLabel) - 1
GUICtrlSetPos ($ThanksgivingLabel[$w], 135, $top1 - $sScroll + $w*$LabelHeight)
Next

For
$t=0 to UBound ($ThanksgivingLabel) - 1
If $sScroll = 495 + $LabelHeight*$t Then
GUICtrlDelete ($ThanksgivingLabel[$t])
EndIf
Next

If
$sScroll > $top1 Then $sScroll = 40*UBound ($ThanksgivingStrings)
$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)
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
Автор: CrazyNNM
Дата сообщения: 09.11.2008 23:02
Tipulatoid
красиво сделано, нодо добавить в личный архив примеров!!
спасибо, где-нить обязательно заюзаю фичу!!!
Автор: ViSiToR
Дата сообщения: 10.11.2008 00:37
Tipulatoid 15:19 09-11-2008
Цитата:
Стильный диалог "About" Visitor'a стал еще лучше

Неплохо, но есть пару моментов...

* При вызове видно как появляются сначала две полоски (это полупрозрачные GUI).
* Текст милькает при прокрутке.
* Переменные в функции нужно объявлять локально.
* Создавать надписи желательно предварительно, а не в цикле.
* Созданные GUI следует удалять при выходе из функции.
* Прокрутку текста я бы повесил на таймер.
Автор: CrazyNNM
Дата сообщения: 10.11.2008 02:00
народ, вот еще вопрос на засыпку
как можно управлять HTML страничкой из автоита кроме как MouseClick'ом??
ато WindowInfo не выдает ничего интересного о содержимом окна допустим, Iexplorer.
Автор: ViSiToR
Дата сообщения: 10.11.2008 02:11
CrazyNNM 03:00 10-11-2008
Цитата:
как можно управлять HTML страничкой из автоита кроме как MouseClick'ом??

См. IE.au3 библиотеку в справке.
Автор: CrazyNNM
Дата сообщения: 10.11.2008 02:15
кстати, я доделал свою прогу, если кому интересно, берите
http://files.kmvcity.ru/8992604

Добавлено:
gal7 думаю, тебе может помочь функция FileInstall
хотя как она работает я пока хз, но по описанию подходит под то что тебе надо
Автор: Tipulatoid
Дата сообщения: 10.11.2008 03:15
ViSiToR

Цитата:
* При вызове видно как появляются сначала две полоски (это полупрозрачные GUI).

Знаю, ничего поделать не могу

Цитата:
* Текст милькает при прокрутке.

То же самое Пробовал увеличивать задержку, удовлетворительного результата не добился. И не имею понятия как мелькание убрать. На самом деле, в Firefox 3 есть также титры, так даже там они мелькают. Не так сильно, конечно, как у меня, но мелькают. А уж Firefox, наверное, делают пряморукие программисты.
РS Дефолтный браузер у меня - Опера
Добавлено
Можно, наверное, попытаться GUICtrlSetPos заменить на ControlMove. Но чего-то не получается у меня. Делаю так

Код:         For $w = 0 to UBound ($ThanksgivingLabel) - 1
;            GUICtrlSetPos ($ThanksgivingLabel[$w], 135, $top1 - $sScroll + $w*$LabelHeight)
            ControlMove ($About_GUI, "", $ThanksgivingLabel[$w], 135, $top1 - $sScroll + $w*$LabelHeight)
        Next
Автор: CrazyNNM
Дата сообщения: 10.11.2008 04:04
ViSiToR спасибо, но походу с инклуд.ие без пол литры хрен разберешься...
так что я пока эту идею оставлю наверное
просто хотел написаит себе грамотный скрипт для прописывания настроек в АДСЛ модем д-линк, ато он настройки сбрасывает после отключения питания (что бывает) или просто иногда виснет (приходится ребутить)
а у модема веб-интерфейс

пока что реализовал мауз-кликом, работает вроде))) раз 10 попробовал настроить.

дааааа......смотрю, мне еще много к чему стремиться)))))))
Автор: Maza Faka
Дата сообщения: 10.11.2008 05:34
CrazyNNM

Цитата:
походу с инклуд.ие без пол литры хрен разберешься

А что нужно сделать-то? Опиши задачу.

P.S.
Кучу примеров можно найти на офф. форуме.
Автор: CrazyNNM
Дата сообщения: 10.11.2008 10:31
мазафака, как написано выше, есть адсл модем, который периодически надо однообразно настраивать, менять режим PPPoE на Bridge
и всего делов то
там веб интерфейс
пока что максимум что я смог, это решить все через mouseclick, но это как то некрасиво, хотя и работает вроде стабильно)))
Автор: ViSiToR
Дата сообщения: 10.11.2008 11:09
Tipulatoid 04:15 10-11-2008
Цитата:
в Firefox 3 есть также титры, так даже там они мелькают

В примере с оф. форума оченеь хорошо прокручиваются титры, почти не мелькают (и версия где они плавно исчезают), может оттуда попробовать приминить?


Цитата:
Дефолтный браузер у меня - Опера

Возможно тогда заинтирисует эта тема


Цитата:
Начинает все окошко дергаться. Что неправильно?

Там вроде нужно (желательно) ещё указывать и Width и Height параметры.
Автор: Maza_Faka
Дата сообщения: 10.11.2008 12:40
CrazyNNM

Цитата:

я смог, это решить все через mouseclick

Ну выложи этот скрипт, а мы посмотрим, что можно сделать
Автор: Tipulatoid
Дата сообщения: 10.11.2008 13:05
ViSiToR

Цитата:
В примере с оф. форума оченеь хорошо прокручиваются титры, почти не мелькают (и версия где они плавно исчезают), может оттуда попробовать приминить?

Да, собственно, на примеры эти и ориентировался, когда писал. Как уже выше указал, замена GUICtrlSetPos на ControlMove мелькание заметно убавляет.

Цитата:
Возможно тогда заинтирисует эта тема

Так давно уж юзаю Как офф. форум или этот топик броузишь, так незаменимая вещь. Особенно открытие справки на выделенной команде. Спасибо тебе за нее.

В общем, те твои замечания, что реально учесть, учел. Осталось таимер прикрутить и выложить final release.
Автор: ViSiToR
Дата сообщения: 10.11.2008 14:42
Tipulatoid
Вот что у меня [more=получилось]

Код: #include <GUIConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
;

HotKeySet("{F1}", "_CallAbout_Proc")

Global $aCover_GUIs[42]
Global $iOld_Left, $iOld_Top, $iScrollPos, $iFirstTime, $iScrollTimer, $iScrollSpeed = 1, $iCustom_ScrollSpeed = 3
Global $iLast_Mouse_YPos = -1, $iIsScrolling = False
Global
$hIsPressed

Global $iScroll_Movie_Effect = False

$hParentGui = GUICreate('Parent For "About Program" Demo', 200, 100)

$Menu = GUICtrlCreateMenu("Help")
$AboutItem = GUICtrlCreateMenuItem("About... (F1)", $Menu)

GUISetState()

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case
$AboutItem
_CallAbout_Proc()
EndSwitch
WEnd

Func
_CallAbout_Proc()
HotKeySet("{F1}")

$Title = "About Info"

$sScrollText = "I want to express special gratitude to:" & _
"\n\n\n\nAutoIt Team\n\n\nAutoIt Community\n\n\n... and many other good people"

$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

_AboutGUI($Title, $MainLabel, "Program version: " & @LF & "v1.0", $sScrollText, $CopyRLabel, _
$NameURL1, $URL1, $NameURL2, $URL2, $NameURL3, $URL3, $hParentGui, @AutoItExe, $LinkColor, $BkColor, 500, 300)

HotKeySet("{F1}", "_CallAbout_Proc")
EndFunc

Func
_AboutGUI($sTitle, $sMainLabelText, $sBodyText, $sScrollText, $sCopyRText, $sNameURL1, $sURL1, $sNameURL2, $sURL2, $sNameURL3, $sURL3, $hParent = 0, $sIconFile = "", $nLinkColor = 0x0000FF, $nBkColor = 0xFFFFFF, $iWidth = 300, $iHeight = 120, $iLeft = -1, $iTop = -1, $nStyle = -1, $nExStyle = -1)
Local $iOldEventOpt = Opt("GUIOnEventMode", 0)
Local $hAbout_GUI, $hScroll_GUI, $iAbout_Msg, $aCurInfo

Local $aCurIsOnCtrlArr[1]
Local $aLinkVisitedColor[4] = [3, $nLinkColor, $nLinkColor, $nLinkColor]
Local $aLinkLabel[4], $iLinkTop = 120

WinSetState($hParent, "", @SW_DISABLE)

If $nExStyle = -1 Then $nExStyle = ""
Local $hAbout_GUI = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, $nStyle, 0x00000080 + $nExStyle, $hParent)

GUICtrlCreateLabel($sMainLabelText, 0, 20, $iWidth, 25, $ES_CENTER)
GUICtrlSetFont(-1, 14)

GUICtrlCreateIcon($sIconFile, 0, 10, 20)
GUICtrlSetState(-1, 128)

GUICtrlCreateGraphic(5, 75, $iWidth - 10, 3, $SS_ETCHEDFRAME)

For $i = 1 To 3
$aLinkLabel[$i] = GUICtrlCreateLabel(Eval("sNameURL" & $i), $iWidth - 150, $iLinkTop, 145, 15, 1)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, $nLinkColor)
GUICtrlSetFont(-1, 9, 400, 0)
GUICtrlSetTip(-1, Eval("sURL" & $i))
$iLinkTop += 30
Next

GUICtrlCreateLabel($sBodyText, 10, 100, 140, 35)
GUICtrlSetFont(-1, 10, 600, 0, "Tahoma")

GUICtrlCreateLabel($sCopyRText, 0, $iHeight - 20, $iWidth, -1, 1)
GUICtrlSetColor(-1, 0x969696)
GUICtrlSetState(-1, 128)

If Not $iScroll_Movie_Effect Then
$hScroll_GUI = GUICreate('', 180, 160, 150, 90, $WS_CHILD, -1, $hAbout_GUI)
Else
$hScroll_GUI = GUICreate('', 180, 160, 150, 90, $WS_CHILD, $WS_EX_CLIENTEDGE+$WS_EX_DLGMODALFRAME, $hAbout_GUI)
GUISetBkColor(0x0)
EndIf

Local
$Scroll_Label = GUICtrlCreateLabel(StringFormat($sScrollText), 0, 70, 180, 510, $ES_CENTER)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetCursor(-1, 0)
GUICtrlSetFont(-1, 10)

If Not $iScroll_Movie_Effect Then
GUICtrlSetColor(-1, 0x804000)
Else
GUICtrlSetColor(-1, 0xFFFFFF)
EndIf

Dim
$iScrollPos = -70, $iFirstTime = 1, $iScrollTimer = TimerInit()
Local $iTransHeight = 2, $iTransValue = (UBound($aCover_GUIs)/2) - 1, $aParentPos = WinGetPos($hAbout_GUI)

If $iScroll_Movie_Effect Then $iTransHeight = 1

$iOld_Left = $aParentPos[0]
$iOld_Top = $aParentPos[1]

For $i = 0 To $iTransValue
;Top Cover
$aCover_GUIs[$i] = GUICreate("", 220, $iTransHeight + 2, _
130 + $aParentPos[0], $iTransHeight * $i + 110 + $aParentPos[1], _
$WS_POPUP, -1, $hAbout_GUI) ;$WS_EX_TOPMOST+$WS_EX_TOOLWINDOW)

WinSetTrans($aCover_GUIs[$i], "", (255 / $iTransValue) * (-1 * ($i - $iTransValue)))

;Bottom cover
$aCover_GUIs[$i + $iTransValue + 1] = GUICreate("", 220, $iTransHeight + 2, _
130 + $aParentPos[0], 260 - $iTransHeight * $i + $aParentPos[1] + 20, _
$WS_POPUP, -1, $hAbout_GUI) ;, $WS_EX_TOPMOST+$WS_EX_TOOLWINDOW)

WinSetTrans($aCover_GUIs[$i + $iTransValue + 1], "", (255 / $iTransValue) * (-1 * ($i - $iTransValue)))
Next

GUISetState(@SW_SHOW, $hAbout_GUI)
GUISetState(@SW_SHOW, $hScroll_GUI)

For $i = 0 To 41
GUISetState(@SW_SHOW, $aCover_GUIs[$i])
Next

GUICtrlSetState($Scroll_Label, $GUI_SHOW)

$hIsPressed = DllOpen("User32.dll")

Local $hCallBack = DllCallbackRegister("_ScrollText_CallBack_Proc", "none", "hwnd;int;int;dword")
Local $ahTimer = DllCall("user32.dll", "int", "SetTimer", _
"hwnd", $hScroll_GUI, "int", 1001, "int", 15, "ptr", DllCallbackGetPtr($hCallBack))

GUISwitch($hAbout_GUI)
GUIRegisterMsg($WM_MOVE, "WM_MOVE")
WinActivate($hAbout_GUI)

SoundPlay(@SystemDir & "\oobe\images\title.wma", 0)

While 1
$iAbout_Msg = GUIGetMsg()

Switch $iAbout_Msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case
$aLinkLabel[1], $aLinkLabel[2], $aLinkLabel[3]
GUISetCursor(0, 1, $hAbout_GUI)
$aCurInfo = GUIGetCursorInfo($hAbout_GUI)

If $iAbout_Msg = $aLinkLabel[1] Then $i = 1
If $iAbout_Msg = $aLinkLabel[2] Then $i = 2
If $iAbout_Msg = $aLinkLabel[3] Then $i = 3

While $aCurInfo[2] = 1
$aCurInfo = GUIGetCursorInfo($hAbout_GUI)
Sleep(10)
WEnd

If $aCurInfo[4] = $iAbout_Msg Then
GUISetCursor(-1, 0, $hAbout_GUI)
$aLinkVisitedColor[$i] = 0xAC00A9
GUICtrlSetColor($iAbout_Msg, $aLinkVisitedColor[$i])
ShellExecute(Eval("sURL" & $i))
EndIf

GUISetCursor(-1, 0, $hAbout_GUI)
EndSwitch

Sleep(30)

_ControlHover_Proc($hAbout_GUI, $aLinkLabel[1], 1, $aCurIsOnCtrlArr, 0xFF0000, $aLinkVisitedColor[1])
_ControlHover_Proc($hAbout_GUI, $aLinkLabel[2], 2, $aCurIsOnCtrlArr, 0xFF0000, $aLinkVisitedColor[2])
_ControlHover_Proc($hAbout_GUI, $aLinkLabel[3], 3, $aCurIsOnCtrlArr, 0xFF0000, $aLinkVisitedColor[3])
WEnd

DllCall("user32.dll", "int", "KillTimer", "hwnd", $hScroll_GUI, "int", $ahTimer[0])
DllCallbackFree($hCallBack)
DllClose($hIsPressed)

GUIRegisterMsg($WM_MOVE, "")
SoundPlay("")

For $i = 0 To 41
GUIDelete($aCover_GUIs[$i])
Next

WinSetState($hParent, "", @SW_ENABLE)
GUIDelete($hAbout_GUI)

GUISwitch($hParent)
Opt("GUIOnEventMode", $iOldEventOpt)
EndFunc ;==>_AboutGUI

Func _ScrollText_CallBack_Proc($hWnd, $iMsg, $wParam, $lParam)
Local $hScroll_Label_Wnd = ControlGetHandle($hWnd, "", "Static1")
Local $iScroll_Label_Ctrl = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hScroll_Label_Wnd)
$iScroll_Label_Ctrl = $iScroll_Label_Ctrl[0]

If ($iIsScrolling Or _Control_GetHovered() = $hScroll_Label_Wnd) And _IsPressed(01, $hIsPressed) Then
Local $iCurrent_Mouse_YPos = MouseGetPos(1)
$iIsScrolling = True

If $iLast_Mouse_YPos < $iCurrent_Mouse_YPos Then ;Move up
$iScrollPos -= $iCustom_ScrollSpeed

ControlMove($hWnd, "", "Static1", 0, -$iScrollPos)
ElseIf $iLast_Mouse_YPos > $iCurrent_Mouse_YPos Then ;Move down
$iScrollPos += $iCustom_ScrollSpeed

ControlMove($hWnd, "", "Static1", 0, -$iScrollPos)
EndIf

GUICtrlSetCursor($iScroll_Label_Ctrl, 11)

$iLast_Mouse_YPos = $iCurrent_Mouse_YPos
$iScrollTimer = TimerInit()
$iFirstTime = 1

If $iScrollPos > 250 Or $iScrollPos < -250 Then $iScrollPos = -150

Return
Else
$iIsScrolling = False
GUICtrlSetCursor($iScroll_Label_Ctrl, 0)
EndIf

If ($iFirstTime And TimerDiff($iScrollTimer) > 1000) Or (Not $iFirstTime And TimerDiff($iScrollTimer) > 30) Then
$iFirstTime = 0
$iScrollTimer = TimerInit()
$iScrollPos += $iScrollSpeed

ControlMove($hWnd, "", "Static1", 0, -$iScrollPos)
If $iScrollPos > 250 Then $iScrollPos = -150
EndIf

;WM_MOVE($hAbout_GUI, 0, 0, 0)
EndFunc ;==>_ScrollText_CallBack_Proc

Func WM_MOVE($hWndGUI, $MsgID, $wParam, $lParam)
Local $aParentPosArr, $aChildPosArr, $iNew_Left, $iNew_Top
$aParentPosArr = WinGetPos($hWndGUI)

For $i = 0 To 41
$aChildPosArr = WinGetPos($aCover_GUIs[$i])

$iNew_Left = $aChildPosArr[0]
$iNew_Top = $aChildPosArr[1]

If $iOld_Left > $aParentPosArr[0] Then
$iNew_Left = $aChildPosArr[0] + ($aParentPosArr[0] - $iOld_Left)
ElseIf $iOld_Left < $aParentPosArr[0] Then
$iNew_Left = $aChildPosArr[0] - ($iOld_Left - $aParentPosArr[0])
EndIf

If $iOld_Top > $aParentPosArr[1] Then
$iNew_Top = $aChildPosArr[1] - ($iOld_Top - $aParentPosArr[1])
ElseIf $iOld_Top < $aParentPosArr[1] Then
$iNew_Top = $aChildPosArr[1] + ($aParentPosArr[1] - $iOld_Top)
EndIf

If $iOld_Left = $iNew_Left And $iOld_Top = $iNew_Top Then Return

WinMove($aCover_GUIs[$i], "", $iNew_Left, $iNew_Top)
Next

$iOld_Left = $aParentPosArr[0]
$iOld_Top = $aParentPosArr[1]
EndFunc ;==>WM_MOVE

Func _Control_GetHovered()
Local $iOld_Opt_MCM = Opt("MouseCoordMode", 1)
Local $Ret = DllCall("user32.dll", "int", "WindowFromPoint", "long", MouseGetPos(0), "long", MouseGetPos(1))

Opt("MouseCoordMode", $iOld_Opt_MCM)

Return HWnd($Ret[0])
EndFunc ;==>_Control_GetHovered

Func _ControlHover_Proc($hWnd, $iCtrlID, $iCtrlNum, ByRef $aCurIsOnCtrlArr, $nHoverColor = 0xFF0000, $nLinkColor = 0x0000FF)
Local $aCursorCtrl = GUIGetCursorInfo($hWnd)
ReDim $aCurIsOnCtrlArr[UBound($aCurIsOnCtrlArr) + 1]

If $aCursorCtrl[4] = $iCtrlID And $aCurIsOnCtrlArr[$iCtrlNum] = 1 Then
GUICtrlSetFont($iCtrlID, 9, 400, 6)
GUICtrlSetColor($iCtrlID, $nHoverColor)
$aCurIsOnCtrlArr[$iCtrlNum] = 0
ElseIf $aCursorCtrl[4] <> $iCtrlID And $aCurIsOnCtrlArr[$iCtrlNum] = 0 Then
GUICtrlSetFont($iCtrlID, 9, 400, 0)
GUICtrlSetColor($iCtrlID, $nLinkColor)
$aCurIsOnCtrlArr[$iCtrlNum] = 1
EndIf
EndFunc ;==>_ControlHover_Proc
Автор: ViSiToR
Дата сообщения: 10.11.2008 22:29
Немного изменил пример, я давно хотел сделать прокрутку текста с возможностью "ручной" прокрутки, т.е удерживая правую кнопку мышки прокручивать вверх/вниз.
+ Исправил пару багов.
Автор: Tipulatoid
Дата сообщения: 11.11.2008 00:09
ViSiToR
Браво
Я, наверное, до кода такого уровня никогда не дорасту
Автор: ViSiToR
Дата сообщения: 11.11.2008 00:26
Tipulatoid 01:09 11-11-2008
Цитата:
Я, наверное, до кода такого уровня никогда не дорасту

Дорастёшь, раз уж сделал сам алгоритм прокрутки текста (каков бы он небыл)
Автор: CrazyNNM
Дата сообщения: 11.11.2008 13:36
; скрипт писался под меня, под мой ноут.


Код: run (@ProgramFilesDir & "\Internet Explorer\iexplore.exe")
WinWait("about:blank - Microsoft Internet Explorer")
ControlSetText("about:blank - Microsoft Internet Explorer","","Edit1","192.168.1.1")
ControlClick("about:blank - Microsoft Internet Explorer","","ToolbarWindow322")
WinWait("http://192.168.1.1/ - Microsoft Internet Explorer")
Sleep(5000) ;так как используется скрипт, окно всегда имеет один и тот же тайтл и доп текста нету, приходится ждать так....
MouseClick("",460,406)
send("{a}{d}{m}{i}{n}{enter}")
sleep(5000)
MouseClick("",392,238)
sleep(5000)
Send("{down}") ;разрешение экрана у меня на буке 1024х600, тобишь страница не помещается полностью, приходтся прокручивать.
MouseClick("",159,500)
Sleep(5000)
MouseClick("",620,347)
Send("{down}{down}{down}{enter}")
Sleep(5000)
Send("{down}")
MouseClick("",445,504)
$color=PixelGetColor(506,554)
$colorh=hex ($color,6)
;ждать пока не загрузится страница полностью (тобишь пока не пройдет строка загрузки)
do
    Sleep(100)
until $colorh=("ECE9D8")
ProcessClose("iexplore.exe")
Автор: Hackproof
Дата сообщения: 11.11.2008 18:53
На офф. форуме нашёл тему, где человек спрашивал про отправку писем через сервер Exchange. Разговор перевели на отправку через обычные почтовые серверы SMTP, а Exchange замяли. Может есть где пример, как отправлять письма через него, причем очень желательно, не пользуя Outlook, или другой клиент вообще, только силами скрипта?
Автор: gal7
Дата сообщения: 11.11.2008 19:51
Кто-то делал подобное:
нужно добавить на загруженную html страничку js код подобный этому:

g = function a(){alert(1)}

Можно ли такое сделать через Autoit? Уж по-всякому пробовал- нивкакую. Eval не работает, _IEDocInsertHTML не срабатывает, по крайней мере как я делал.

Добавлено:
Все, заработало!
Автор: ViSiToR
Дата сообщения: 11.11.2008 22:13
CrazyNNM 14:36 11-11-2008
Цитата:
сори что без раскрасски

Ну хотябы в тег code можно же поместиь


Цитата:
попытался запустить au3topost, выдает
==> Unknown option or bad parameter specified

Его нужно заточить под версию 3.2.12.1. Если будет время выложу обновлённую версию.
Автор: Maza_Faka
Дата сообщения: 12.11.2008 06:01
CrazyNNM
К сожалению ADSL модема у меня нет, поэтому написать код не смогу Но, как я уже постил выше, ты можешь поискать в этом топике (в версии для печати) и на офф. форуме примеры, с помощью которых ты сможешь написать нужный тебе скрипт. Ищи по следующим названиям функций:

Код:
_IECreate()
_IEAction()
_IEFormElementSetValue()
_IEFormSubmit()
Автор: Partner1
Дата сообщения: 12.11.2008 09:30
Скажите пожалуйста, а как в AutoIT можно щелкнуть по пункту в контекстном меню любой программы (по имени) висящей в трее?
Автор: asdfzxcv
Дата сообщения: 12.11.2008 13:15
Здравствуйте, подскажите как с помощью автоита извлеч список компьютеров всего домена (тоесть учётных записей компьютеров), net view не подходит, так как эта комманда показывает только те компьютеры, которые в сети.

Спасибо.
Автор: Lovec
Дата сообщения: 12.11.2008 15:55
all
в шапке есть "Справочник по командам rundll32".
А нет ли у кого общим одним списком того же? А то муторно выдирать с этого ресурса по одной команде...
Автор: NIKZZZZ
Дата сообщения: 12.11.2008 19:28
Есть такая задача, нужно получить .au3 скрипт, работающий на машине, на которой отсутствуют .au3 библиотеки, тоесть выбросить все #include.
Есть не совсем корректное решение - декомпилировать .exe файл, есть ли что-либо готовое для этой цели?
Автор: Loopback
Дата сообщения: 12.11.2008 22:58

Цитата:
Есть такая задача, нужно получить .au3 скрипт, работающий на машине, на которой отсутствуют .au3 библиотеки, тоесть выбросить все #include.

На оффоруме было несколько утилит для этих целей. По-моему, сейчас более-менее рабочий на последних версиях Autoit остался только Preprocessor.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192

Предыдущая тема: Quintura Search


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.