Недавние сообщения

Страницы: 1 ... 8 9 [10]
91
GUI - Графический интерфейс пользователя / Как узнать активен ли GUICtrlCreateInput
« Последний ответ от Gilman Отправлен Февраль 18, 2017, 16:43:45 »
Хочу реализовать кнопку, для вставки данных в несколько input элементов из буфера обмена. Что бы по нажатию вставлялось туда, где находится активный input элемент.
Каким образом можно узнать какой из input елементов активирован?
92
О проекте и форуме / Re: Как поднять репутацию пользователю?
« Последний ответ от sngr Отправлен Февраль 18, 2017, 16:12:12 »
На форуме было ограничение на минимальное кол-во сообщений, после коего можно менять репутацию.
93
О проекте и форуме / Re: Как поднять репутацию пользователю?
« Последний ответ от hedji Отправлен Февраль 18, 2017, 15:56:29 »
кнопка "палец вверх"
94
С помощью этого смотришь что происходит при нажатии нужных кнопок, затем с помощью _SendMessage ты увиденное отсылаешь окну.
95
О проекте и форуме / Как поднять репутацию пользователю?
« Последний ответ от IvanChai Отправлен Февраль 18, 2017, 15:26:05 »
Каким образом я могу отблагодарить пользователя за ответы, подняв ему репутацию? Ни в списке ответов, ни в профиле пользователя такой возможности нет.
96
Имеем тестовый модифицированный пример http://autoit-script.ru/index.php?topic=23446.0 , который сейчас работает через непосредственный вызов контекстного меню right-кликом и горячей клавишей, удаляя первый пункт истории (чтобы работало, нужно включить режим истории канала руками - стрелка вправо):

Код: AutoIt [Выделить]
#include <UIAutomate.au3>
#include "MSActiveAccessibility.au3"

Global Const $sIID_IAccessible = "{618736E0-3C3D-11CF-810C-00AA00389B71}"
Global $dtagIAccessible = "GetTypeInfoCount hresult(uint*);" & _
"GetTypeInfo hresult(uint;int;ptr*);" & _
"GetIDsOfNames hresult(struct*;wstr;uint;int;int);" & _
"Invoke hresult(int;struct*;int;word;ptr*;ptr*;ptr*;uint*);" & _
"get_accParent hresult(ptr*);" & _
"get_accChildCount hresult(long*);" & _
"get_accChild hresult(variant;idispatch*);" & _
"get_accName hresult(variant;bstr*);" & _
"get_accValue hresult(variant;bstr*);" & _
"get_accDescription hresult(variant;bstr*);" & _
"get_accRole hresult(variant;variant*);" & _
"get_accState hresult(variant;variant*);" & _
"get_accHelp hresult(variant;bstr*);" & _
"get_accHelpTopic hresult(bstr*;variant;long*);" & _
"get_accKeyboardShortcut hresult(variant;bstr*);" & _
"get_accFocus hresult(struct*);" & _
"get_accSelection hresult(variant*);" & _
"get_accDefaultAction hresult(variant;bstr*);" & _
"accSelect hresult(long;variant);" & _
"accLocation hresult(long*;long*;long*;long*;variant);" & _
"accNavigate hresult(long;variant;variant*);" & _
"accHitTest hresult(long;long;variant*);" & _
"accDoDefaultAction hresult(variant);" & _
"put_accName hresult(variant;bstr);" & _
"put_accValue hresult(variant;bstr);"

Const $ZC_REMOVE_MESSAGE = 32798 ; "удалить выделенные" из истории SysListView326

HotKeySet('{ESC}', '_exit')

$hWnd = WinWait("[CLASS:d8348ccb68a1]", "", 10)
WinActivate($hWnd)

$hCtrl = ControlGetHandle($hWnd, "", "SysListView326") ; история

While 1
     Local $oParent = _UIA_GetElementFromHandle($hCtrl)
     Local $aItems = _UIA_FindAllElements($oParent, "ControlType", $UIA_ListItemControlTypeId) ; все пункты списка

     If IsArray($aItems) And $aItems[0] > 0 Then
         Local $sNames = _GetNames($hCtrl)
         Local $oElement = $aItems[1]
         ConsoleWrite("Name: " & $sNames[1] & @CRLF)
         _UIA_ElementScrollIntoView($oElement)
         _UIA_ElementMouseClick($oElement, "right")
         Send({ENTER}")
         ControlListView($hWnd,"",$hCtrl,"SelectClear")
                 Sleep(1000)
     Else
         Sleep(2000)
     EndIf
WEnd

Func _GetNames($hWnd)
     If Not IsHWnd($hWnd) Then Return SetError(1, 0, 0)
     Local $pWindow, $oWindow, $iChildCount, $sText
     AccessibleObjectFromWindow($hWnd, $OBJID_CLIENT, $tIID_IAccessible, $pWindow)
     $oWindow = ObjCreateInterface($pWindow, $sIID_IAccessible, $dtagIAccessible)
     If Not IsObj($oWindow) Then Return  SetError(2, 0, 0)
     If $oWindow.get_accChildCount($iChildCount) Or Not $iChildCount Then Return SetError(3, 0, 0)
     Local $res[$iChildCount+1]
     For $iChild = 1 To $iChildCount
         $oWindow.get_accName($iChild, $sText)
         $res[$iChild] = $sText;
     Next
     Return $res
EndFunc

Func _exit()
     Exit
EndFunc
 


Каким образом можно проверить доступность и послать команду из контекстного меню по заданному AutomationId объекту $oElement, без непосредственного клика на элементе?

То есть хочется заменить:
Код: AutoIt [Выделить]
_UIA_ElementScrollIntoView($oElement)
_UIA_ElementMouseClick($oElement, "right")
Send({ENTER}")
ControlListView($hWnd,"",$hCtrl,"SelectClear")
 

чем-то, что может работать в фоне, используя AutomationId пункта контекстного меню $ZC_REMOVE_MESSAGE и не мешая пользователю работать с другим софтом.
97
Дни рождения / Re: С днём рождения Alofa!
« Последний ответ от Alofa Отправлен Февраль 18, 2017, 13:29:14 »
Спасибо Друзья.  :laugh:

Кстати, для вашего возраста...
3 года - это период моего знакомства с вами. :IL_AutoIt_2:
98
Общие вопросы по AutoIt / Re: Извлечь строки по списку
« Последний ответ от Parazit Отправлен Февраль 18, 2017, 13:18:29 »
InnI, спасибо. Ваш скрипт тоже работает.
99
Общие вопросы по AutoIt / Re: Извлечь строки по списку
« Последний ответ от InnI Отправлен Февраль 18, 2017, 13:11:33 »
Parazit
Цитировать
которые отсутсвуют в файле C:\111.txt, но которые присутствуют в файле C:\222.txt
Код: AutoIt [Выделить]
#include <File.au3>
_FileWriteFromArray("Output.txt", _ArrayCompare(FileReadToArray("222.txt"), FileReadToArray("111.txt")))

100
Общие вопросы по AutoIt / Re: Извлечь строки по списку
« Последний ответ от Parazit Отправлен Февраль 18, 2017, 11:41:51 »
Великолепно. Спасибо.
Страницы: 1 ... 8 9 [10]