Что нового

Загрузить файл в буфер обмена

winkot

Новичок
Сообщения
169
Репутация
0
Простейший код:
Код:
#include <Misc.au3>

$Var = _ClipPutFile(@ScriptDir & "\Temp.txt")
ClipPut($Var)
MsgBox(4096,"",$Var)

не работает. MsgBox выдает True. При попытке скопировать вручную из буфера обмена (Ctrl+V) в другой текстовый файл ничего не происходит. В чем дело?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Происходит копирование файла.
Если нужно скопировать содержимое, то FileRead
 

Oki

Продвинутый
Сообщения
452
Репутация
62
Потому что на самом деле копируется не файл, а ссылка на него. Вот что означают таинственные слова "как это делает Explorer" в справке. Попробуй в Explorer скопировать любой файл в буфер, а затем попытайся в блокноте его из буфера подтянуть, не будет никакой реакции. А вот если в адресной строке Explorer, а не в блокноте, то появится ссылка.
Сообщение автоматически объединено:

Почему-то с этим скриптом даже этого не происходит даже если убрать странную строку с попыткой сунуть единицу в буфер обмена (которая тоже почему-то там не появляется; по крайней мере в обычной форме). А вот простое копирование в Explorer пытается создать копию файла, как это делает сам Explorer, если убрать копирование единицы. Но если в той же папке это делать, то не умеет создать копию с модификацией имени файла (добавлением указания, что это копия), а Explorer при полном цикле действий это умеет. Из этих двух фактов становится очевидным, что заявление в справке, что это происходит так, как это делает Explorer несколько натянуто, происходит нечто менее готовое.

Но в любом случае надеяться на получение файла в блокнот таким образом точно нет никаких причин. Для этого вот так можно сделать.
Код:
$sText = FileRead(@ScriptDir & "\Temp.txt")
ClipPut($sText)
 
Последнее редактирование:
Верх