PDA

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


DREDivan
01-09-2010, 19:29
Добрый день! Помогите ктото написать скрипт выполнение определённой операции
Цель
1) нажать кнопку Open
http://s04.radikal.ru/i177/1009/7b/f32a91abc4c1t.jpg (http://radikal.ru/F/s04.radikal.ru/i177/1009/7b/f32a91abc4c1.jpg.html)
2) нажать кнопку Browse...
http://s002.radikal.ru/i200/1009/52/2d5323ee6046t.jpg (http://radikal.ru/F/s002.radikal.ru/i200/1009/52/2d5323ee6046.jpg.html)
3) и в поле имя файла выбрать название файла, например 1 #1.vcf и нажать ENTER
http://s004.radikal.ru/i208/1009/58/12e74ff8ba3et.jpg (http://radikal.ru/F/s004.radikal.ru/i208/1009/58/12e74ff8ba3e.jpg.html)
4) нажать кнопку Import
http://s48.radikal.ru/i121/1009/eb/4a7235370377t.jpg (http://radikal.ru/F/s48.radikal.ru/i121/1009/eb/4a7235370377.jpg.html)
5) нажать OK
http://s45.radikal.ru/i108/1009/56/b5e30e61833at.jpg (http://radikal.ru/F/s45.radikal.ru/i108/1009/56/b5e30e61833a.jpg.html)
6) нажать OK
http://s53.radikal.ru/i140/1009/1f/c97b77f655d1t.jpg (http://radikal.ru/F/s53.radikal.ru/i140/1009/1f/c97b77f655d1.jpg.html)

Далее цикл повторяется только уже в третьем пункте нужно чтобы значение менялось с 1 #1.vcf на 1 #2.vcf
Последнее допустимое значение 1 #506.vcf



Информация полученная через Auto It v3 Windows Info
1) кнопка Open
http://s54.radikal.ru/i146/1009/5f/8870565b305bt.jpg (http://radikal.ru/F/s54.radikal.ru/i146/1009/5f/8870565b305b.jpg.html)
2) кнопка Browse
http://s51.radikal.ru/i133/1009/48/3847d4f0e2f0t.jpg (http://radikal.ru/F/s51.radikal.ru/i133/1009/48/3847d4f0e2f0.jpg.html)
3) поле ввода
http://i057.radikal.ru/1009/39/6e32587befcat.jpg (http://radikal.ru/F/i057.radikal.ru/1009/39/6e32587befca.jpg.html)http://s002.radikal.ru/i198/1009/a6/8f867a81a319t.jpg (http://radikal.ru/F/s002.radikal.ru/i198/1009/a6/8f867a81a319.jpg.html)
4) кнопка Import
http://s005.radikal.ru/i211/1009/21/6826109e7b7et.jpg (http://radikal.ru/F/s005.radikal.ru/i211/1009/21/6826109e7b7e.jpg.html)
5) кнопка OK
http://s51.radikal.ru/i133/1009/52/7a033071c65ft.jpg (http://radikal.ru/F/s51.radikal.ru/i133/1009/52/7a033071c65f.jpg.html)
6) кнопка OK
http://i060.radikal.ru/1009/73/1eef5c742de0t.jpg (http://radikal.ru/F/i060.radikal.ru/1009/73/1eef5c742de0.jpg.html)



P.S.: напишите пожалуйста этот скрипт, а то начал читать учебник а толку мало.

madmasles
04-09-2010, 17:16
DREDivan,
Вы ссылку на эту программу дайте.

DREDivan
05-09-2010, 11:20
http://www.mobiledit.com/downloads.asp?show=me

madmasles
05-09-2010, 19:25
DREDivan,
Попробуйте так:#include <GuiTreeView.au3>
#include <GuiListView.au3>
#include <File.au3>

Opt("WinTitleMatchMode", 2)
Opt("MouseCoordMode", 2)
Opt("GUIDataSeparatorChar", "\")

$sPathFiles = @DesktopDir & '\999' ;путь к папке с файлами .vcf
$sPathProgram = @ProgramFilesDir & '\MOBILedit!4\MOBILedit!.exe';путь к программе
;заголовки окон:
$sTitle = 'MOBILedit!4'
$sTitleImport = 'Phonebook Import...'
$sTitlePreview = 'Phonebook Preview...'
$sTitleMapping = 'Phonebook Mapping'
$sModel = 'Samsung SGH-D780'
$j = 0
Dim $aFileList[1]

;получаем в массив список файлов .vcf и удаляем из него файлы с № больше 506:
$aTemp = _FileListToArray($sPathFiles, '*.vcf', 1)
For $i = 1 To $aTemp[0]
If Number(StringTrimRight(StringTrimLeft($aTemp[$i], StringInStr($aTemp[$i], '#')), 4)) <= 506 Then
$j += 1
ReDim $aFileList[$j + 1]
$aFileList[$j] = $aTemp[$i]
EndIf
Next
$aFileList[0] = $j
;запускаем программу MOBILedit!.exe:
Run($sPathProgram)
;ждем и активируем окно программы
$hWindow = WinWait($sTitle, '', 10)
If Not $hWindow Then Exit
If Not WinActive($hWindow) Then WinActivate($hWindow)
WinWaitActive($hWindow)
$iTime = TimerInit()
While 1
;ждем, пока программа найдет телефон. Если за 30 сек. не найдет, то заканчиваем работу
If TimerDiff($iTime) >= 30000 Then Exit
If StringInStr(WinGetText($hWindow), $sModel) Then ExitLoop
Sleep(100)
WEnd
;кликаем по той строке Phonebook, которая ниже строки с моделью телефона
$hTreeView = ControlGetHandle($hWindow, '', '[CLASS:SysTreeView32; INSTANCE:1]')

$hSelect = _GUICtrlTreeView_FindItemEx($hTreeView, 'Connected Devices\' & $sModel & '\Phonebook')
_GUICtrlTreeView_SelectItem($hTreeView, $hSelect)
; в цикле заполняем тлф книгу
For $i = 1 To $aFileList[0]
;по кнопке в XTPToolBar у меня получилось только мышкой кликнуть:
$aPosToolBar = ControlGetPos($hWindow, '', '[CLASS:XTPToolBar; INSTANCE:3]')
BlockInput(1)
MouseClick('left', $aPosToolBar[0] + $aPosToolBar[2] / 14 * 3, $aPosToolBar[1] + $aPosToolBar[3] / 2, 1)
BlockInput(0)
$hImport = WinWait($sTitleImport, '', 10)
If Not $hImport Then Exit
If Not WinActive($hImport) Then WinActivate($hImport)
WinWaitActive($hImport)
;выбираем расширение *.vcf
$hListView = ControlGetHandle($hImport, '', '[CLASS:SysListView32; INSTANCE:1]')
_GUICtrlListView_ClickItem($hListView, 0)
;вставляем текст из очередной строки массива
ControlSetText($hImport, '', '[CLASS:Edit; INSTANCE:1]', $sPathFiles & '\' & $aFileList[$i])
While 1
;ждем, пока кнопка станет активной.
If ControlCommand($hImport, '', '[CLASS:Button; INSTANCE:1]', 'IsEnabled', '') Then ExitLoop
WEnd
;кликаем по ней.
BlockInput(1)
ControlClick($hImport, '', '[CLASS:Button; INSTANCE:1]')
BlockInput(0)
;отсюда и до конца цикла ждем очередное окно и кликаем по кнопке.
$hPreview = WinWait($sTitlePreview, '', 10)
If Not $hPreview Then Exit
If Not WinActive($hPreview) Then WinActivate($hPreview)
WinWaitActive($hPreview)
BlockInput(1)
ControlClick($hPreview, '', '[CLASS:Button; INSTANCE:1]')
BlockInput(0)

$hMapping = WinWait($sTitleMapping, '', 10)
If Not $hMapping Then Exit
If Not WinActive($hMapping) Then WinActivate($hMapping)
WinWaitActive($hPreview)
BlockInput(1)
ControlClick($hMapping, '', '[CLASS:Button; INSTANCE:1]')
BlockInput(0)

Sleep(500)
Next




© OSzone.net 2001-2012