Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Нажатие кнопки в программе (http://forum.oszone.net/showthread.php?t=194495)

bestkz 20-12-2010 11:09 1570252

Нажатие кнопки в программе
 
Приветствую
Помогите решить вопрос нужен маленький скрипт
который нажимал кнопу на старт(она же после нажатия переходит в стоп) dowloadmaster через определеный период времени
сколько не пытался но програмист из меня некудышный. был бы благодарен за помощь.
может кто подскажет или хоть укажет направления где есть похожие примеры.
кнопку нужно нажимать имено в программе.

madmasles 20-12-2010 12:45 1570344

bestkz,
Попробуйте так получить информацию:
Код:

#include <GuiToolbar.au3>
#include <GuiListView.au3>

$sDM = '[Class:TMainForm;Title:Download Master]'
$sPathDM = @ProgramFilesDir & '\Download Master\dmaster.exe'

Run($sPathDM)

WinWait($sDM)
If Not WinActive($sDM) Then WinActivate($sDM)
$hHandleDM = WinWaitActive($sDM)
$hToolbar = ControlGetHandle($hHandleDM, '', '[CLASS:TToolBar; INSTANCE:1]')
$hListView = ControlGetHandle($hHandleDM, '', '[CLASS:TListView; INSTANCE:2]')

$iCountTB = _GUICtrlToolbar_ButtonCount($hToolbar)
MsgBox(64, 'Toolbar', 'Кнопок: ' & $iCountTB)
For $i = 0 To $iCountTB - 1
    $sText = _GUICtrlToolbar_GetButtonText($hToolbar, $i)
    If $sText Then
        $bEnable = _GUICtrlToolbar_IsButtonEnabled($hToolbar, $i)
        MsgBox(64, 'Индекс: ' & $i, 'Кнопка: ' & $sText & @CRLF & 'Активна: ' & $bEnable)
        ;If $bEnable And $sText = 'Старт' Then
        ;    _GUICtrlToolbar_ClickButton($hToolbar, $i)
        ;EndIf
    EndIf
Next
$iCountItem = _GUICtrlListView_GetItemCount($hListView)
$iCountColumn = _GUICtrlListView_GetColumnCount($hListView)
MsgBox(64, 'ListView', 'Строк: ' & $iCountItem & @CRLF & 'Столбцов: ' & $iCountColumn)
For $i = 0 To $iCountItem - 1
    $sMessage = ''
    For $j = 0 To $iCountColumn - 1
        $sMessage &= _GUICtrlListView_GetItemText($hListView, $i, $j) & @CRLF
    Next
    MsgBox(64, 'Индекс: ' & $i, $sMessage)
Next

А дальше делайте то, что Вам надо. Все функции для этого есть.

bestkz 20-12-2010 16:38 1570529

Спасибо немного разобрался тепер все запускается а неподскажете как зделать чтобы скрипт запускался через определеный интервал времени весь скрипт?

madmasles 20-12-2010 18:03 1570588

bestkz,
Sleep(),
TimerInit(), TimerDiff().
Например:
Код:

$iPause = 5 ;секунд

MsgBox(64, 'Sleep()', 'Запускаем паузу на ' & $iPause & ' секунд')
Sleep($iPause * 1000)
MsgBox(64, 'Sleep()', 'Кончилась пауза в ' & $iPause & ' секунд')

MsgBox(64, 'TimerDiff()', 'Запускаем паузу на ' & $iPause & ' секунд')
$iStart = TimerInit()
While 1
    If TimerDiff($iStart) >= $iPause * 1000 Then ExitLoop
    Sleep(10)
    ToolTip(Round(TimerDiff($iStart) / 1000, 2), 0, 0)
WEnd
MsgBox(64, 'TimerDiff()', 'Кончилась пауза в ' & $iPause & ' секунд')



Время: 05:20.

Время: 05:20.
© OSzone.net 2001-