Ветеран
Сообщения: 27449
Благодарности: 8086
|
Профиль
|
Отправить PM
| Цитировать
semiono, напрямую такое сделать никак не получится, но, скорее всего, кто-нибудь уже озаботился подобным, и наверняка есть что-то готовое — стоит поискать.
Если не найдёте, можете попробовать скомпилировать наподобие такого скрипта AutoIt:
читать дальше »
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Include <ClipBoard.au3>
#Include <String.au3>
AutoItSetOption("MustDeclareVars", 1)
Local $hdropDropHandle
Local $lngIDListLenght
Local $arrRetValues
Local $i
Local $strFileNameBuffer
If _ClipBoard_IsFormatAvailable($CF_HDROP) Then
If _ClipBoard_Open(0) Then
$hdropDropHandle = _ClipBoard_GetData($CF_HDROP)
$arrRetValues = DllCall("shell32.dll", "uint", "DragQueryFileW", "uint", $hdropDropHandle, "uint", -1, "wstr", Chr(0), "uint", 0)
$lngIDListLenght = $arrRetValues[0]
For $i = 1 To $lngIDListLenght
$strFileNameBuffer = _StringRepeat(" ", 1024)
$arrRetValues = DllCall("shell32.dll", "uint", "DragQueryFileW", "uint", $hdropDropHandle, "uint", $i - 1, "wstr", $strFileNameBuffer, "uint", StringLen($strFileNameBuffer))
ConsoleWrite($arrRetValues[3] & @CRLF)
Next
_ClipBoard_Close()
EndIf
Else
Exit(1)
EndIf
Exit(0)
Скрипт просто выводит на консоль имена файлов из буфера обмена, которые могут быть разобраны, например, командой «for». Это лишь примерный шаблон, как можно делать, поскольку и пути могут быть куда как длиннее, и вывод в консоль идёт в ANSI, а не OEM, могут быть и ошибки (да и вообще такие утилиты следует писать на C). Ежели что, думаю, в соседней теме Вам помогут довести скрипт до ума, коль и впрямь понадобится.
|
Отправлено: 06:23, 18-07-2009
| #38
|