Что нового

Как в проводнике передать в буфер обмена путь\имя_файла

Dimmak

Знающий
Сообщения
185
Репутация
9
Нужный результат: C:\Folder\filename.ext
Для этого использую скрипт:
Код:
#Include <HotKey.au3>
#Include <vkConstants.au3>

_HotKeyAssign($VK_OEM_3, '_fnc')

Func _fnc()
	$ActWin = WinGetTitle('[active]')
Sleep(200)
	Send("{F2}")
	Send("^a^c")
	Send("{ESC}")
Sleep(200)
	$fullpath = $ActWin &"\"& ClipGet()
		ClipPut($fullpath)
EndFunc

While 1
	Sleep(10)
WEnd

Посоветуйте более эффективный способ для достижения этого результа! :IL_AutoIt_1:
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Код:
Func _fnc()
ClipPut(ControlGetText ( WinGetTitle('[active]'), "","")&"\"& ClipGet())
EndFunc
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
winstan
Запуск вашей функции не приводит к нужному результату. :whistle:
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Dimmak
1. Для начала как получить путь
2. Дальше: как обойти раскладку клавиатуры
3. ^a (Ctrl+A) не будет выделять имя файла, не тот случай, не проще ли проверить какие клавиши это делают, чем писать в скрипт то, что не работает как таковое. Разве по F2 имя файла не выделяется. (или я не угадал смысл?)
4. ^c (Ctrl+C) лучше заменить на ^ins (Ctrl+Insert). Избавит от проблем раскладки.
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
AZJIO
Смысл в том, что в проводнике нужно передать в буфер обмена путь\имя( C:\Folder\filename.ext ) ВЫДЕЛЕННОГО файла.
В заголовке окна прописан путь к файлу -
Код:
$ActWin = WinGetTitle('[active]')
Если нажать при выделенном файле F2 - переименовать,
CTRL+A - выделить имя файла и его расширение ( у меня win7 )
CTRL+С - в буфер обмена...
Я полагаю, что посредством AUTOIT, можно достичь данного результата более эффективным способом, о чем и спрашиваю! ;)

Zaramot Спасибо, но охота осуществить задуманное все-таки МОГУЧИМ AUTOIT'ом!
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
If $CmdLine[0] > 0 And FileExists($CmdLine[1]) Then
    ClipPut($CmdLine[1])
EndIf


1) Скомпилируй скрипт
2) Правый клик на файле
3) "Открыть с помощью" и выбери скомпилируемый скрипт

После этого в буфере будет полный путь к файлу :smile:
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Dimmak
WinGetTitle получить путь только в случае если у чела стоит галочка отображения полного пути в имени заголовка, у меня не так и по умолчанию не так, а значит в 90% случаев работать не будет или "только для себя".

CTRL+A - выделить имя файла и его расширение ( у меня win7 )
"Ctrl+Shift+стрелка вправо" - должно работать на любой системе, а не только win7 и без зависимости от раскладки.

Кстати у меня SaveFolders почти для этих целей. На F1 висит переименование с выделением файла с расширением, обычно выполняю с комбинацией Ctrl+C. На F2 без расширения, обычно для переименования. WinXP, но и на Win7 проверял.
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
Я таки добрался до этого скрипта! :laugh:
http://www.autoitscript.com/forum/topic/89833-windows-explorer-current-folder/
:IL_AutoIt_1:
AZJIO спасибо! ;D
 
Верх