تلقائي: تنشيط واختيار قائمة سياق العناصر في ControlTreeView

StackOverflow https://stackoverflow.com/questions/3849307

  •  27-09-2019
  •  | 
  •  

سؤال

أريد أن أقوم بالتثبيت التلقائي بواسطة Autoit. لا يمكنني تنشيط واختيار قائمة العناصر على خطوة "تحديد الميزات". يمكنني اختيار أي عنصر في "الشجرة". لأنها أستخدم الوظيفة

ControlTreeView($windowId, "", $h_tree, "Select", "#2")

كيفية تنشيط واختيار قائمة العناصر في ControlTreeView؟

alt text

هل كانت مفيدة؟

المحلول 2

يمكنك رؤية إجابة على السؤال على الموقع http://forum.oszone.net/thread-146460.html

#include <GuiMenu.au3>
#include <GuiTreeView.au3>
#Include <SendMessage.au3>
#Include <WindowsConstants.au3>

$WinTitle= "1С:Предприятие 8.1"
$WinText = "Выберите компоненты программы"

WinWait($WinTitle, $WinText)
; ищем элемент окна и последовательно нужный пункт списка
$hDTCtrl = ControlGetHandle($WinTitle, "", "SysTreeView321")
$hDTItem = _GUICtrlTreeView_FindItem($hDTCtrl, "Дополнительные интерфейсы")
$hDTIt_1 = _GUICtrlTreeView_FindItem($hDTCtrl, "Казахский", False, $hDTItem)
; активируем окно
WinActivate($WinTitle, $WinText)
WinWaitActive($WinTitle, $WinText)
; переходим к нужному пункту списка
_GUICtrlTreeView_SelectItem($hDTCtrl, $hDTIt_1, $TVGN_FIRSTVISIBLE)
_GUICtrlTreeView_ClickItem ($hDTCtrl, $hDTIt_1, "left", True)
; вызываем контекстное меню
$aRect = _GUICtrlTreeView_DisplayRect($hDTCtrl, $hDTIt_1, True)
ControlClick($WinTitle, $WinText, $hDTCtrl, "left", 1, $aRect[0]-10, $aRect[1]+5)
WinWait("[CLASS:#32768]")
; выбираем нужный пункт контекстного меню
$hWnd  = WinGetHandle("[CLASS:#32768]")
$hMenu = _SendMessage($hWnd, $MN_GETHMENU, 0, 0)
$aRect = _GUICtrlMenu_GetItemRect($hWnd, $hMenu, 0)
MouseClick("left", $aRect[0]+20, $aRect[1]+15, 1, 1)

نصائح أخرى

يمكنك القيام بذلك مع لوحة المفاتيح.

لقد فعلت هذا في الماضي مع

send("{down}{space}{down}{down}{enter}")

مزيج. أعلم أن هذا لا يمكن أن يكون أفضل طريقة للقيام بذلك ولكنه سيعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top