Ребята, подскажите, куда копать! Есть программа InqSoft Window Scanner - просматривает главное меню окна любой программы, видит ID пунктов меню и позволяет на них нажимать и т.д. Как при помощи UOPilot так же работать с главным меню программы через скрипты, просматривать структуру меню и работать с дочерними окнами??
local handle = findwindow('Canon iP2700') if handle then showwindow(handle , 'TOP') -- добавить эту строку
Почему-то окно не делается активным Строку вставил:
код
Код
function check1:on_click() -- если был клик по галке local menuiteminfo = ffi.new('MENUITEMINFOW', {ffi.sizeof('MENUITEMINFOW'), MIIM_STATE }) local handle = findwindow('Canon iP2700') -- имя окна очереди печати if handle then showwindow(handle , 'TOP') local h_menu = ffi.C.GetMenu(ffi.cast('HWND', handle[1][1])) if h_menu then local h_submenu = ffi.C.GetSubMenu(h_menu, 0) -- 0 - Принтер local id_item = ffi.C.GetMenuItemID(ffi.cast('int', h_submenu), 6) -- 6 - Приостановить печать if check1.checked then menuiteminfo.fState = MFS_CHECKED else menuiteminfo.fState = MFS_UNCHECKED end ffi.C.SetMenuItemInfoW(h_submenu, id_item, false, menuiteminfo) -- установить галку на пункт меню ffi.C.PostMessageA(handle[1][1], WM_COMMAND, id_item, 0) -- может надо, может нет end else log ('Окно очереди печати не найдено') end end