1

Тема: AHK: dropfiles в активное "подокно" программы

Добрый день необходимо дропнуть файл в "подокно" программы.
К примеру, открыт photoshop, в нем открыт документ. Дроп в Photoshop выполняет код ниже.
Как реализовать дроп именно в выбранный документ?
открытый документ = Untitled-1 @ 25% (RGB/8)


Winactivate , Adobe Photoshop
existPath = D:\блабла\img_0001
DropFiles( existPath ".png", "Untitled-1 @ 25% (RGB/8)" )

DropFiles(ByRef fileList, windowTitle := "", ctrl := "", x := 0, y := 0, NCA := 0)
{
    offset := 20
    VarSetCapacity(dropFiles, StrLen(fileList) + offset, 0)
    pDP := &dropFiles

    loop, parse, fileList, `n, `r
        StrPut(A_LoopField, pDP + offset, StrLen(A_LoopField), "CP0")
        , offset += StrLen(A_LoopField) + 4
        , NumPut(0, pDP + offset - 4, "UInt")

    NumPut(0, pDP + offset, "UInt")
    NumPut(20, pDP + 0, "UInt")
    NumPut(x, pDP + 4, "UInt")
    NumPut(y, pDP + 8, "UInt")
    NumPut(NCA, pDP + 12, "UInt")
    NumPut(0, pDP + 16, "UInt")

    nSize := offset + 4
    hDrop := DllCall("GlobalAlloc", "UInt", 0x42, "UInt", nSize, "Ptr")
    pData := DllCall("GlobalLock", "Ptr", hDrop, "Ptr")
    DllCall("RtlMoveMemory", "Ptr", pData, "Ptr", pDP, "UInt", nSize)
    DllCall("GlobalUnlock", "Ptr", hDrop)

    PostMessage, 0x233, hDrop, 0, %ctrl%, %windowTitle%

}

2

Re: AHK: dropfiles в активное "подокно" программы

Думаю проблема в "Untitled-1 @ 25% (RGB/8)"
Возможно стоит экранировать некоторые символы.
Были как то проблемы с определением окна с кучей символов в заголовке. Проверьте сначала есть ли определение:

MsgBox % WinExist("Untitled-1 @ 25% (RGB/8)")
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui