Тема: AHK: Как скопировать локальный файл в буфер обмена?
Подскажите как скопировать файл с жесткого диска в буфер с помощью скрипта AHK?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите как скопировать файл с жесткого диска в буфер с помощью скрипта AHK?
Вот так можно:
PutFileIntoClipboard("D:\MyFile.ext")
PutFileIntoClipboard(fileList) {
static GHND := 0x42, CF_HDROP := 0xF
fileList := Trim( RegExReplace(fileList, "\R", "`n"), " `t`r`n" ), RegExReplace(fileList, "\R", "", count)
VarSetCapacity(DROPFILES, size := 20 + StrLen(fileList) + count + 2, 0)
NumPut(20, DROPFILES)
prevLen := 0
Loop, parse, fileList, `n
prevLen += StrPut(A_LoopField, &DROPFILES + 20 + prevLen + A_Index - 1, StrLen(A_LoopField), "CP0")
hMem := DllCall("GlobalAlloc", "UInt", GHND, "Ptr", size, "Ptr")
pData := DllCall("GlobalLock", "Ptr", hMem, "Ptr")
DllCall("RtlMoveMemory", "Ptr", pData, "Ptr", &DROPFILES, "Ptr", size)
DllCall("GlobalUnlock", "Ptr", hMem)
DllCall("OpenClipboard", "Ptr", 0)
DllCall("SetClipboardData", "UInt", CF_HDROP, "Ptr", hMem)
DllCall("CloseClipboard")
}В качестве параметра функции может быть передан путь к одному либо пути к нескольким файлам, разделённые знаком переноса строки.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться