Хобрук: Ваш путь к мастерству в программировании

Получить путь к выбранному файлу Windows Explorer в AutoIt

Мой скрипт AutoIt работал до тех пор, пока я использовал его через командную строку. Там я мог бы использовать $CmdLine[1] и передать путь в качестве аргумента. Теперь я пытаюсь преобразовать скрипт в новый метод, чтобы избежать аргументов командной строки.

Вы открываете окно проводника и выбираете файл, например, C:\test.txt. После этого вы запускаете функцию AutoIt с помощью CTRL+WIN+C. Сценарий должен посмотреть, какой файл выбран в активном окне проводника, получить путь C:\test.txt и назначить его переменной $file.

Это моя незавершенная работа, в которой я застрял.
Строка 5 $CmdLine[1] должна быть изменена на секретную функцию, которую я не знаю.

;Assign key combination "CTRL-WIN-C" to function "copyUNC"
HotKeySet("^#c", "CopyUNC") 

;function to copy UNC path of selected Windows Explorer file/folder to clipboard
func CopyUNC()
    $file = FileGetLongName($CmdLine[1])   ;THIS LINE NEEDS TO BE CHANGED
    $drive = StringLeft($file, 2)
    $UNCdrive = DriveMapGet($drive)
    If $UNCdrive = "" Then  
        $UNCfile = $file    
    else 
        $UNCfile = $UNCdrive & StringTrimLeft($file, 2)
    endif   
    ClipPut($UNCfile)
endfunc

;necessary loop so AutoIt script stays active and in Tray
While 1
    Sleep(100)
WEnd

Вопрос. Как получить путь к выбранному файлу/папке из проводника Windows в AutoIt v3.3.8.1?

Примечание №1. Я не хочу использовать приемы реестра и щелчка правой кнопкой мыши для передачи аргумента
Примечание №2. Если выбрано несколько файлов, просто передайте первый файл. Не усложняйте вещи

02.10.2013

  • В качестве альтернативы вы можете сделать свою программу вызываемой из контекстного меню отправки. Чтобы вы щелкнули правой кнопкой мыши по файлу, выберите «Отправить», а затем ваше приложение. Файл будет передан вашему приложению как cmdline[1] 03.10.2013
  • autoitscript.com/forum/topic/ 01.11.2014

Ответы:


1

CMDLINE[1] не имеет ничего общего с тем, что вы хотите.

Если вы хотите активировать свой скрипт с помощью горячей клавиши ПОСЛЕ ручного выбора файла в проводнике Windows, вам необходимо изучить само окно проводника.

Вот функция для извлечения выбранного элемента в проводнике

Func GetExplorerSelection()
Local $saveClip = ""
Local $filesFolders = ""
Local $handle = _WinAPI_GetForegroundWindow()
Local $className = _WinAPI_GetClassName($handle)
If $className = "ExploreWClass" Or $className = "CabinetWClass" Then
$saveClip = ClipGet()
Send("^c")
Sleep(50) ; give clipboard time to react
$filesFolders = ClipGet()
ClipPut($saveClip)
; test if $filesFolders contains @LF and split if so etc..
; code to call StringSplit() etc..
EndIf
EndFunc
06.10.2013
Новые материалы

Управление DOM для чайников вроде меня
Одной из первых вещей, которую мы рассмотрели, когда начали изучать Javascript во Flatiron, была модель DOM. Кто он? Чем он занимается? Он больше машина, чем человек? Ну да довольно много. ДОМ..

Что такое структура данных?
Структура данных хранит и извлекает данные. Все, что обеспечивает эти две функции, является структурой данных . Период. Вы можете пропустить оставшуюся часть статьи, если ответ..

мои январские чтения по программированию
Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

Искусственный интеллект в юридической отрасли - пример прогнозирования судебных решений с помощью глубокого обучения
На протяжении всей истории люди полагались на суды, присяжных, королей и королев в отправлении правосудия. Сегодня способность судов обеспечивать справедливое и быстрое правосудие для своих..

Введение в машинное обучение для обнаружения аномалий (часть 1)
Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

Начало работы с Pulumi в Digital Ocean
Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..