#Include Com.ahk            ; COM
        RunMSWordMacro(correct)
        {
            COM_Init()
            Word := COM_GetActiveObject("Word.Application")
            COM_Invoke(Word, "Run", "!"correct)
            COM_Release(Word)
            COM_Term()
        }

        ;    the hotkey is 1
    1::RunMSWordMacro("correct")

यह कोड काम क्यों नहीं करता है? चित्र "संदेश" को देखें, और कृपया मेरी मदद करें, मैं ऑटोहोटकी में नया उपयोगकर्ता हूं।

जब मैं हॉटकी दबाता हूं, तो उसने मुझे यह संदेश दिया:

https://i.stack.imgur.com/ebtDH.png

यह मेरा वीबीए कोड है:

धन्यवाद डेविड मेटकाफ, वह मेरा वीबीए कोड है:

Sub correct()
'
' correct Macro
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "p "
        .Forward = True
        .Wrap = wdFindContinue
    End With
    Selection.Find.Execute
    Selection.TypeText Text:="o "
End Sub
-3
asad41163 12 सितंबर 2017, 17:39

2 जवाब

सबसे बढ़िया उत्तर

यहाँ से मदद: [https://autohotkey.com /boards/viewtopic.php?f=5&t=37197&e=1&view=unread#unread][1]

   1:: RunMSWordMacro("correct")

    RunMSWordMacro(name)  {
       GetWord().Run(name)
    }

    GetWord()  {
       if !hwnd := WinActive("ahk_class OpusApp")
          hwnd := WinExist("ahk_class OpusApp")
       ControlGet, ControlHwnd, Hwnd,, _WwG1, ahk_id %hwnd%
       Return AccObjectFromWindow(ControlHwnd, -16).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, 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, 1)
    }
1
asad41163 27 सितंबर 2017, 22:31

यह मदद करेगा यदि आपने समझाया कि आपके कोड का अंतिम लक्ष्य क्या है। आपके द्वारा प्रदान किए गए वीबीए के आधार पर, ऐसा लगता है कि आप केवल माइक्रोसॉफ्ट वर्ड चलाने की कोशिश कर रहे हैं, इस मामले में आप पूरी तरह से ऑटोहॉटकी का उपयोग कर सकते हैं।

Run सिंटैक्स का उपयोग करना काफी आसान है।

Run, C:\Path\to\Microsoft Word.exe
0
David Metcalfe 17 सितंबर 2017, 01:25