На первых порах можно использовать без понимания. Нужно только получать объект Excel.Application
Excel := Excel_Get()
Excel_Get(WinTitle := "ahk_class XLMAIN") {
ControlGet, hwnd, hwnd,, Excel71, %WinTitle%
if !hwnd
return
Window := AccObjectFromWindow(hwnd, -16)
Loop {
try Application := Window.Application
catch
ControlSend, Excel71, {esc}, %WinTitle%
} Until !!Application
return Application
}
AccObjectFromWindow(hWnd, idObject = 0)
{
static IID_IDispatch := "{00020400-0000-0000-C000-000000000046}"
, IID_IAccessible := "{618736E0-3C3D-11CF-810C-00AA00389B71}"
, OBJID_NATIVEOM := 0xFFFFFFF0, VT_DISPATCH := 9, F_OWNVALUE := 1
, h := DllCall("LoadLibrary", "Str", "oleacc", "Ptr")
VarSetCapacity(IID, 16), idObject &= 0xFFFFFFFF
DllCall("ole32\CLSIDFromString", "Str", idObject = OBJID_NATIVEOM ? IID_IDispatch : IID_IAccessible, "Ptr", &IID)
if DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject, "Ptr", &IID, "PtrP", pAcc) = 0
Return ComObjEnwrap(VT_DISPATCH, pAcc, F_OWNVALUE)
}
и использовать его.
Ознакомьтесь, пожалуйста, с правилами. Обратите внимание на точки в конце предложений и правила цитирования. Я отредактировал ваш пост.
Разработка AHK-скриптов:
e-mail
dfiveg@mail.ruTelegram
jollycoder