[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1324
  • Репутация:127

    [+] [-]
pkm_dll
Скачать: yandex upload.ee
Создаёт пункт меню в контекстном меню проводника.
Сформировать ini-файл, зарегистрировать dll, пользоваться.

Описание ini-файла

[set] ; секция настроек
HotReadINI=0 ; предназначен для теста dll. При регистрации dll установить в 1, тогда каждый клик пункта меню сопровождается чтением ini-файла, что позволяет на лету менять параметры пункта (кроме NamePlag, Text и Bitmap). Когда пункт протестирован перейдите HotReadINI = 0 и горячее чтение прекратится. Чтобы начать тест заново надо перевести в 1 и сделать перелогин аккаунта.
Path=pkm.bat ; любой исполняемый файл, абсолютный путь, относительный от папки DLL и имя файла с поиском в %Path% или в папке DLL
Arg=/i ; дополнительные аргументы, кроме путей к выделенным файлам. Аргумент вставляется перед файлами.
ModeWorkDir=1 ; определяет рабочую папку. 0 - рабочая папка там где выбранные файлы, 1 - рабочая папка исполняемого файла
Text=My Item ; текст пункта, то что будет отображаться в меню. На любом языке, с пробелами.
Bitmap=1 ; если 1 то показывать значок пукнта. Это bmp-файл (icon.bmp), размером 16x16 пиксел в папке DLL. 0 - не отображать.
Select=1 ; что выбрать. 1 - файлы, 2 - папки, 3 - файлы и папки. Остальные будут игнорироваться.
Separator=| ; задаёт разделитель между файлами. Например в батнике можно задать разделитель в цикле, чтобы не использовать пробел, являющийся частью имени файла. Тогда %1 является вся строка с файлами.
Debug=0 ; режим отладки или вывода. 1, 2, 4, 8, 16. Итак, 1 и 4 выдают сообщение, причём 4 выдаёт только имена, а 1 исполняемый файл и рабочий каталог, 2 и 8 - буфер обмена, но 8 выдаёт только имена, а 2 исполняемый файл и рабочий каталог. Причём если в сообщении нажать ОК, то выполнится команда, получается контроль файлов и согласие выполнения, а вариант с буфером обмена не запускает исполняемый файл поэтому этот вариант можно использовать чтобы получить имена в буфер обмена для использования списка файлов на форуме и т.д. 16 - при 1 и 2 создаёт список файлов без путей. 1 и 2 выдаёт многострочный список вне зависимости от разделителя и кавычек.
Quotes=" ; задаёт символ вокруг строки файлов, чтобы bat-файл воспринимал строку как 1 параметр, не разделяя на пробелы. Но иногда нужен вывод без них.
[dllreg] ; секция регистрации DLL
NamePlag=MyPlag1 ; внутреннее имя плага, не особо важно, но если DLL регистрируется более одного раза, то имя плага всегда должно быть другое, иначе это перезапишет секцию в реестре. Использовать латинские буквы и цифры без пробелов.
WhereAssoc=1 ; где регистрировать пункт: 1 - файлы, 2 - папки, 4 - диски. Сумма флагов даёт комбинации вариантов, например 1+2+4 = 7, то есть флаг 7 регистрирует пункт во всех.
ini-файл читается только при регистрации и входе в аккаунт (при старте ОС). Это значит, что если необходимо поменять параметры в ini-файле, например пункт меню или исполняемый файл, или иконку (но не имя плагина), то это применится только после перезапуска эксплорера, аналогично после Выход -> Вход в аккаунт или перезагрузки. Но для теста введён параметр HotReadINI = 0, если HotReadINI = 1, то чтение ini-файла производится при каждом клике на пункте, это режим тестирования пункта без необходимости каждый раз делать перевыход, чтобы протестировать рабочую папку (ModeWorkDir), параметры запуска (Arg). После завершения теста переключить в HotReadINI = 0. начать тест снова горячим переключением в HotReadINI = 1 не получится, надо делать перелогин.
Bitmap не имеет прозрачных пикселов (хотя не тестировал розовую маску), поэтому весь квадрат значка должен быть заполнен, чтобы в белой и чёрной теме это выглядело одинаково.

Регистрация DLL

Положить папку с dll например в системную папку. Для начала путь к dll без пробела для надёжности.
Указать параметры в ini-файле, подробнее см. выше.
Зарегистрировать dll с правами админа (zRegister_DLL.cmd). (чтобы перерегистрировать нужно выполнить zUnregister_DLL.cmd, сделать выход из аккаунта, чтобы подменить dll новой версией и снова зарегистрировать).

Использование

Выделить несколько файлов, нажать правую кнопку мыши, вызвать пункт меню.
Выполняется файл, указанный в "Path = "
Файлы передаются исполняемому файлу в виде ком-строки.
Повторить выше описанное, чтобы создать сколько угодно пунктов. Создать новую папку с копией dll с новыми параметрами ini-файла с созданием нового пункта меню.
ini-файл читается только при регистрации и входе в аккаунт (при старте ОС). Это значит, что если необходимо поменять параметры в ini-файле, например пункт меню или исполняемый файл, или иконку (но не имя плагина), то это применится только после перезапуска эксплорера, аналогично после Выход -> Вход в аккаунт или перезагрузки. Но для теста введён параметр HotReadINI=0, если HotReadINI=1, то чтение ini-файла производится при каждом клике на пункте, это режим тестирования пункта без необходимости каждый раз делать перевыход, чтобы протестировать рабочую папку (ModeWorkDir), параметры запуска (Arg). После завершения теста переключить в HotReadINI=0. начать тест снова горячим переключением в HotReadINI=1 не получится, надо делать перелогин.
Bitmap не имеет прозрачных пикселов (хотя не тестировал розовую маску), поэтому весь квадрат значка должен быть заполнен, чтобы в белой и чёрной теме это выглядело одинаково.
Программу можно использовать для получения списка файлов включив Debug=8 или 8+16=24 чтобы имена были без путей.
При использовании Debug=4 можно контролировать имена файлов получив сообщение перед запуском, чтобы знать, что передаётся необходимый набор файлов.

Обновление

Добавлен параметр Charset = 0 (24 - ANSI и 25 - UTF-16, иное UTF-8)
Добавлены флаги для параметра "Debug = " 32 - сохранить в файл и 64 - без параметров.
Com2Selfiles
Скачать: yandex upload.ee
Автоматизация действий с выделенными файлами в проводнике.

Установка

Установить программу TrueLounchBar версии 6.6.9 (бесплатная для СССР) и добавить горячую клавишу на запуск Com2Selfiles.exe
Настроить ini-файл.

Использование

Выделить несколько файлов, вызвать горячую клавишу для запуска Com2Selfiles.exe.
Выполняется файл, указанный в "Path = "
Файлы передаются исполняемому файлу в виде ком-строки.
Повторить выше описанное, чтобы создать для любых других программ. Создать новую папку с новыми параметрами ini-файла с новой горячей клавишей.

Описание ini-файла

[default] ; секция настроек
Path=pkm.bat ; любой исполняемый файл, абсолютный путь, относительный от папки EXE и имя файла с поиском в %Path% или в папке EXE
Arg=/i ; дополнительные аргументы, кроме путей к выделенным файлам. Аргумент вставляется перед файлами.
ModeWorkDir=1 ; определяет рабочую папку. 0 - рабочая папка там где выбранные файлы, 1 - рабочая папка исполняемого файла
Select=1 ; что выбрать. 1 - файлы, 2 - папки, 3 - файлы и папки. Остальные будут игнорироваться.
Separator=| ; задаёт разделитель между файлами. Например в батнике можно задать разделитель в цикле, чтобы не использовать пробел, являющийся частью имени файла. Тогда %1 является вся строка с файлами.
Charset=0 ; Кодировка файла 24 - Ascii, 25 - UTF-16 с BOM, что либо иное - UTF-8 с BOM.
Clear=0 ; (по умолчанию 1) для ручного копирования файлов.
Class2=TTOTAL_CMD,CabinetWClass ; Дополнительные классы окна для захвата выделенных файлов, чтобы использовать другие файловые менеджеры. Перечисление классов через запятую без пробелов.
Debug=0 ; режим отладки или вывода. 1, 2, 4, 8, 16, 32, 64. Итак, 1 и 4 выдают сообщение, причём 4 выдаёт только имена, а 1 исполняемый файл и рабочий каталог, 2 и 8 - буфер обмена, но 8 выдаёт только имена, а 2 исполняемый файл и рабочий каталог. Причём если в сообщении нажать ОК, то выполнится команда, получается контроль файлов и согласие выполнения, а вариант с буфером обмена не запускает исполняемый файл поэтому этот вариант можно использовать чтобы получить имена в буфер обмена для использования списка файлов на форуме и т.д. 16 - при 1 и 2 создаёт список файлов без путей. 1 и 2 выдаёт многострочный список вне зависимости от разделителя и кавычек. 32 - создаёт файл в папке %TEMP%\Com2Selfiles.txt (зависит от имени исполняемого файла), 64 - пустая ком-строка для запуска программ, которым нежелательно передавать ком-строку, полезно совместно с флагом 32.
Quotes=" ; задаёт символ вокруг строки файлов, чтобы bat-файл воспринимал строку как 1 параметр, не разделяя на пробелы. Но иногда нужен вывод без них.

LauncherCL - специальный лаунчер, который передаёт полученную ком-строку запускаемым программам. Удобен для работы в связке с выше указанными комплектами. Этот мод на основе LauncherPB


Последний раз редактировалось: AZJIO (2022-12-13 09:25), всего редактировалось 13 раз(а)

[Цитировать]

    dimo70
  • 17296
  • Стаж: 7 лет
  • Сообщений: 3784
  • Репутация:27

    [+] [-]
  • Откуда: BG
AZJIO, как то сложновато, не могу понять что да как. Скачал, поставил все в System32 зарегистрировал DLL. Пункт появился и запускает что то, но ничего не понял. aa Можешь какой то конкретный пример построить чтоб отследил детали? aa

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1324
  • Репутация:127

    [+] [-]
dimo70, читать ini-файл, указать путь что запускать. А вообще удобно для программ, которым надо передать 2 выбранных файла, например программы сравнения Meld, WinMerge. Можно было бы сделать через "Отправить", но пункт уже будет вложенным, а с dll в корень меню можно пункт добавить. Можно просто использовать это как функционал получения списка выделенных файлов.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
96892А вообще удобно для программ, которым надо передать 2 выбранных файла
Ну и три прекрасно отправляет в Araxis Merge !
Спасибо aa МАСТЕР aa
Тока пришлось совсем удалить из ини файла Arg, иначе она лезла третьим файлом
Кстати, а dll можно каким-либо образом использовать как экзешник ?
Чтоб завести его ярлык в TrueLounchBar и использовать по хоткею
То есть - выделил два текстовых файла (или три), нажал хоткей - вуаля - файлы в AraxisMerge
Добавлено через 24 минуты 1 секунда:
Как говорится, беда контекстного меню в том, что оно не безразмерное ...
В отличии от TrueLounchBar ...

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1324
  • Репутация:127

    [+] [-]
позвачера добавлял справку CHM, в upload.ee был без справки, перезалил со справкой.
rekshd, может позже попробую, хотя не очень привлекает идея, так как EXE будет работать только с TrueLounchBar, т.е. не как самостоятельная программа. В большей степени есть желание сделать утилитку висящую в трее с некоторыми полезными хоткеями, например проверить, если окно эксплорера активно, то разрешить работу хоткеев (создание файла, папки, переименование и т.д.). Может даже полноценно повторить программу SaveFolders на PureBasic для Win7-10, текущая только для WinXP, я пытался сделать адаптацию для Win7-8, но активно не тестировал, потому как долго сидел на WinXP и потом сразу перешёл на Win10, а на момент доработки Win10 ещё не было, поэтому опять надо дописывать, проблема что адресная строка и класс окна постоянно меняются.
Проверил SaveFolders на Win10, F1 (переименование выделив всё), F2 работает, пути захватывает из адресной строки, папки открывает. Создание каталога F9 и текстового файла F10 не работает.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
96914не очень привлекает идея, так как EXE будет работать только с TrueLounchBar, т.е. не как самостоятельная программа
Как раз наоборот, экзешник - это универсальное самостоятельное решение,
в каком то смысле даже более простое и более универсальное, чем dll.
Ведь кроме TrueLaunchBar есть вагон и маленькая тележка подобных программ, работающих с экзешниками.
Экзешник имеет возможность пристыковываться ко всем прогам, способным оперировать с ярлыками.
А вот dll в чистом виде - тока к контекстному меню ...

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1324
  • Репутация:127

    [+] [-]
rekshd, первая попытка - скачать Com2Selfiles
Добавь в TrueLounchBar и проверь что по хоткею возвращается список файлов.
Обновил, встроил ini-файл, но практически скопировав из pkm_dll, удалив имя и иконку пункта и параметры регистрации и горячее чтение, в общем всё что не нужно EXE файлу. В общем сработало сразу по аналогу pkm_dll.
Добавил тестовый EXE файл, который запустит Com2Selfiles с задержкой 5 секунд, чтобы можно было тестировать не скачивая TrueLounchBar? Кликнул, выделил и через 5 сек Com2Selfiles получит выделенное. А то я с TrueLounchBar помучился и бросил, требует регистрации, работает демо-версия.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
96930А то я с TrueLounchBar помучился и бросил, требует регистрации, работает демо-версия
Я ж предупреждал, что пользовать TrueLounchBar тока до версии 6.6.9 !
TLB двадцать лет была бесплатная и без регистрации для пользователей exUSSR.
Потом автору взбрело в голову сделать её платной и с регистрацией для россиян.
Попробовал платную версию, переплевался at и почти сразу же снёс.
Мало того, что появились глюки разнообразные, так исчо и функционала совсем нового не добавилось...
Вообщем с 7-й версии ao TLB для меня не существует, тока 6.6.9 (крайняя бесплатная и без регистрации).
Ну и в архиве на всякий случай держу и старые версии за 15 лет af
Если нужно, то рабочую и проверенную как на W7, так и на W10 версию TLB 6.6.9 могу выложить куды-нибудь.
Хотя проще, наверно, с руборда забрать


Последний раз редактировалось: rekshd (2022-09-16 22:51), всего редактировалось 1 раз

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
96930первая попытка - скачать Com2Selfiles
Отлично работает с двумя-тремя объектами
Дальше пока тестить не стал, поскоку уезжаю в поход до понедельника
Добавил тестовый EXE файл, который запустит Com2Selfiles с задержкой 5 секунд, чтобы можно было тестировать
Красивое решение. действительно удобно тестить
Добавлено через 2 часа 49 минут 5 секунд:
-
Если честно, то не совсем понял, как вывести произвольный список выделенных объектов (в файл или на экран)
Штук 10-15 объектов ...
Если эти объекты внутри папки выбраны по CTRL в произвольном порядке и количестве ...
ah

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1324
  • Репутация:127

    [+] [-]
rekshd, Обновил
1. Добавлен флаг Debug=32 для сохранения списка в файл.
2. Добавлена иконка программе
3. Добавлена справка
Добавил в шапку, так как программа однотипная, практически повторяет функционал, просто разный запуск команды.
96969Если эти объекты внутри папки выбраны по CTRL в произвольном порядке и количестве ...
А что не так? Вроде не зависит от количества. Выбрал десяток файлов в соседней папке, запустил test.exe, активировал окно с выделенными файлами, получил список файлов, всё сходится, использовать Debug = 1.
96969список выделенных объектов (в файл
ну вот сделал в файл %TEMP%\Com2Selfiles.txt (Debug = 32). Вспомнил что можно передавать файл-список. Сделал формат UTF-8 с BOM. Надеюсь этот формат самый релевантный.
96938TrueLounchBar
так и не понял где добавлять хоткей. Я по умолчанию получил панельку, может надо сделать меню. чтобы разблокировались кнопки в настройках хоткеев.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
96978так и не понял где добавлять хоткей
Просто перетягиваешь ярлык на панель.
Само собой, панель до этого нужно включить в панели задач через ПКМ-Панели
Затем на этом ярлыке щёлкаешь ПКМ и выбираешь "Горячая клавиша"
Если такой хоткей уже есть, не даст сделать.
Если хочешь удалить хоткей, то там где ты его создаёшь просто нажми Ctrl
TLB напишет None после чего нажать кнопку ОК
Усё ah
А чтоб перетягивать кнопки\папки и т.д. - опять же через ПКМ
в любом месте панели TLB (а не на панели задач) снимаешь галку "Разблокировать кнопки"
PS 1 в TLB есть и более извращённые методы создания кнопок,
Можно, например, через плагин запустить последовательно перечень программ с добавлением
к каждой программе нужных параметров запуска.
PS 2 Самое главное, панель TLB абсолютно не жрёт ресурсов
В отличии от панели задач, к которой современные пользователи очень любят прикреплять в свежих NT всякую лабуду типа браузеров и т.п.
и потом сильно удивляются, чего это их мощный современный комп так тормозит и так медленно загружается
В TLB ярлык - это старый добрый ярлык, который помним исчо с XP и который ресурсов не жрёт.
PS 3 Да, TLB тоже можно сделать тормознутой,
но для этого в неё надо подсадить минимум пару-тройку тысяч ярлыков
(как-то был у меня такой опыт с каталогом мелких "офисных" игрущек)
ag
Правда и в проводнике простое открытие папки с 3000 ярлыков займимает очень приличное время ...

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
Сonvert by Ander_73 прекрасно срабатывает с одиночными файлами
По хоткею ae
Туда и сюда
Вот с таким кодом

set.ini

[set]
Path = C:\Program Files\--- convert by Ander_73 ---\convert.cmd
; Path = pkm.bat
; Arg = /i
ModeWorkDir = 1
Select = 3
Separator = " "
Debug = 0
Quotes = "

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1324
  • Репутация:127

    [+] [-]
rekshd, надо думать как сделать вложенное меню с конфигом типа как у лаунчера, добавляем секцию [Name] и в ней полностью описание пункта меню. При старте они все генерируются чтением ini-файла, у каждого своя задача. Это избавит создавать dll на каждый пункт в главном меню.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
97091 как сделать вложенное меню с конфигом типа как у лаунчера
Тогда это и будет лаунчер ... Для dll реализации наверно будет удобно
А вот для экзешной реализации - не факт. Надо пробовать ...
Экзешник ведь тока Посредник между проводником и конкретной программы
Главное для экзешника - его ярлык в TLB с ХОТКЕМ Запуска
(но если же реализовать лаунчер, то, конечно, можно избавиться от TLB)
ai-
А не удобнее ли будет реализовать усё экзешное в виде конструкции
"Эзешник_КлючЗапуска\Программа"
Например, в строчке ярлыка "Объект" будет Com2Selfiles.exe convert.cmd
Собственно, у меня это так и работает.
Тока в текущей реализации экзешника Convert.cmd запускается через строчку в set.ini
Path = C:\Program Files\--- convert by Ander_73 ---\convert.cmd
Вывод - можно ли переменную Path реализовать в виде кдюча запуска для Com2Selfiles.exe ?
Если прикладная прога лежит около Com2Selfiles.exe, то в ярлыках запуска будет, например:
Com2Selfiles.exe Convert.cmd
Com2Selfiles.exe test.bat
Com2Selfiles.exe pkm.ps1
Com2Selfiles.exe SkyNet
и т.д.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 11 месяцев
  • Сообщений: 331
  • Репутация:7

    [+] [-]
AZJIO,
Покрутив в голове твою идею с Лаунчером, понял, что стоит сделать !
Было б хорошо иметь в трее лаунчер, на который можно добавлять "Заклинания" (скрипты\программы) срабатывающие по хоткею.
Как в фэнтези - Универсальный посох колдуна be с разнообразными заклинаниями
Посох "захватывает" адрес выделенного в Проводнике объекта и по хоткею к объекту применяется нужное заклинание (скрипт)
Ведь ключевая функция Com2Selfiles.exe -
передать Адрес выделенного в проводнике объекта подготовленному заранее скрипту\программе\заклинанию
bm

Страница 1 из 3


Показать сообщения:    

Текущее время: 03-Дек 21:08

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы