Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для semiono

Ветеран


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

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


HELP!! то работает то нет, не могу понять... там диалог между двумя окнами, я правда в одном из них ресурсы подредактировал, но не может быть что из-за этого, так как окно "видится" как и было, однако код стал криво работать, не пойму что такое... хотя причину я конечто же вижу, дело в том что мне было подсказанно такое -
Код: Выделить весь код
$Var1 = ClipGet()
ControlSetText("abcd","","Edit2", $Var1)
но как я могу привинтить переменную, когда у меня клик по кнопке "PASTE FROM CLIPBOARD" (Class:button)
Я уже чуть-повыше кодом эксперементировал с клип буффером, но там тоже глюки, то получается то нет...
Я даже это вставлял - _ClipBoard_Empty() кое где...
Однако без буффера обмена видимо никак! Помогите, код уже почти готов! Последний шаг не срабатывает...

Код: Выделить весь код
#include <GuiTab.au3>
; это мой хитрый ход, для того чтоб [Class:NINormalWindow00400000] всегда запускался на регистрацию...
RegDelete("HKLM\Software\Native Instruments\AkoustikPiano","KEY") 
RegDelete("HKLM\Software\Native Instruments\AkoustikPiano","SNO")
RegDelete("HKLM\Software\Native Instruments\AkoustikPiano","SYSTEMID")

; тут восстанавливаем "SNO" и таким образом обходим первое окно из [Class:NINor... , чтоб проще было
Run(@ScriptDir & "\Xetup.exe")
Sleep(100)
WinActivate(": ~")
Sleep(100)
WinWaitActive(": ~","","SysTabControl321")
Sleep(100)
ControlFocus(": ~","","Edit1")
Sleep(100)
$xxx = ControlGetText(": ~","","Edit1")
Sleep(100)
RegWrite("HKLM\Software\Native Instruments\AkoustikPiano","SNO","REG_SZ", $xxx)
Sleep(100)

; Тут нам [Class:NINorm... даёт SYSTEMID
Run(@ScriptDir & "\Zetup.exe")
Sleep(100)
WinActivate("[Class:NINormalWindow00400000]")
Sleep(100)
WinWaitActive("[Class:NINormalWindow00400000]")
Sleep(100)
_ControlClickEx("[Class:NINormalWindow00400000]", "", "Main", 363, 168)
Sleep(100)

; тут кое какие ещё действия...
WinActivate(": ~")
Sleep(100)
WinWaitActive(": ~")
Sleep(100)
$hTab = ControlGetHandle(": ~","","SysTabControl321")
Sleep(100)
_GUICtrlTab_ClickTab($hTab, 1)
Sleep(100)
ControlFocus(": ~","","Edit2")
Sleep(100)
ControlClick(": ~","","Edit2", "left", 2)
Sleep(100)
ControlClick(": ~","","Edit2", "right", 1)
Sleep(100)
Send("{DOWN 4}")
Sleep(100)
Send("{ENTER}")
Sleep(100)

; закрываем всякие Success - ненужные окна...
ControlClick(": ~","","Button2", "left", 1)
Sleep(100)
WinWaitActive("...")
Sleep(100)
WinClose("...")
Sleep(100)
WinClose(": ~")

; НО тут у нас ловится опять SYSTEMID, а надо было с этого места ""_GUICtrlTab_ClickTab($hTab, 1)""
; Как тут из буфера выловить результ предыдущего job???? 
; было бы хорошо еслиб конечно такое работало - $var = Send("{ENTER}") :)
WinActivate("[Class:NINormalWindow00400000]")
Sleep(100)
WinWaitActive("[Class:NINormalWindow00400000]")
Sleep(100)
_ControlClickEx("[Class:NINormalWindow00400000]", "", "Main", 100, 412)
Sleep(100)
_ControlClickEx("[Class:NINormalWindow00400000]", "", "Main", 100,540) ; это уже EXIT
Sleep(100)
WinWaitActive("[CLASS:#32770]")
Sleep(100)

WinClose("[CLASS:#32770]")
Sleep(100)

WinClose("[Class:NINormalWindow00400000]")
Exit

; За это массу благодарностей, всё на пять работает :-)
Func _ControlClickEx($sTitle, $sText="", $sButton="Main", $iCtrl_X_Coord=0, $iCtrl_Y_Coord=0)
    Local $aWin_Pos = WinGetPos($sTitle, $sText)
    Local $aWin_ClientSize = WinGetClientSize($sTitle, $sText)

    Local $iBorder_Size = $aWin_Pos[2] - $aWin_ClientSize[0]
    Local $iCaption_Size = $aWin_Pos[3] - $aWin_ClientSize[1]

    Local $aOld_Mouse_Pos = MouseGetPos()

    MouseClick("Main", $aWin_Pos[0]+$iCtrl_X_Coord+$iBorder_Size, $aWin_Pos[1]+$iCtrl_Y_Coord+$iCaption_Size, 1, 0)
    MouseMove($aOld_Mouse_Pos[0], $aOld_Mouse_Pos[1], 0)
EndFunc
ЗЫ !!! Я кажись точно поломал своё окно! это там причина... щас разберусь... оно в буфер ничего не даёт...
Зато по автоиту сколько узнал нового код возможно этот даже правильный...

-------
Полезное сообщение


Последний раз редактировалось semiono, 10-02-2009 в 02:58.


Отправлено: 01:54, 10-02-2009 | #15