Страница 144 из 243
Добавлено: Ср июн 19, 2024 13:14
Orion9
Зато представляется более полезным для продвинутого формирования данных для стандартных подсказок тотала на основе данных других плагинов, т. е. по типу super_wdx.
[cut="Из справки super_wdx"]Авторы ЗАПРЕЩАЮТ использовать любые файлы, входящие в инсталяционный архив, в так называемых "паках" (Total Commander XP, TC Power Pack и тому подобных). Мы не будем распространяться о законности и правильности составления и распространения таких "паков", скажем только, что относимся к этому крайне негативно. [/cut]
Наверное поэтому я никогда его не видел ни в каких "паках"
Loopback
В справке к FileGetAttr говорится о "N Нормальный T Временный". Но кажется, я никогда прежде не сталкивался с такими определениями. Что имеется в виду под "нормальный"? А то наводит тут на разные мысли
https://www.youtube.com/watch?v=V5n8p8yApok
Добавлено: Чт июн 20, 2024 11:15
Loopback
Orion9 писал(а):Наверное поэтому я никогда его не видел ни в каких "паках"
Что-то я не нашел в справке плагина такого. Ну да ладно.
Orion9 писал(а):Что имеется в виду под "нормальный"?
Ничего такого, что могло бы навести на разные мысли
Нормальный в данном случае тот, у которого не установлено других атрибутов. Временный - я так понимаю, файл с этим атрибутом система будет стараться хранить в памяти, не записывая на носитель.
Добавлено: Чт июн 20, 2024 12:09
Avada
Loopback
В порядке информации: есть подобный запрет в справке этого плагина ("Описание и информация" — "Тоже важно:").
Добавлено: Чт июн 20, 2024 13:16
Orion9
Loopback
Баг с Usercmd.ini в AppData\Roaming\GHISLER\ успешно исправлен, только сейчас проверил - значки все на месте.
Надо было мне сразу, конечно, поглядеть (вроде читал не так давно, но как-то пропустил):
https://www.autohotkey.com/docs/v2/lib/ ... Attrib.htm
Но ваши пояснения всё-равно уместны. Теперь буду знать, что у меня куча
нормальных файлов, ура!

Добавлено: Пт июн 21, 2024 17:11
Orion9
Avada
Запрет из категории "я плакал", но понятно, что это было очень давно и на тот момент (когда только начали появляться первые сборки) воспринималось несколько иначе.
Loopback
Плагин становится все мощнее и удобнее. Опробовал сейчас новый вызов (без сторонних утилит) небольшой функцией к плагину Similarity. Давно хотел к нему примочку на Autorune
Код: Выделить всё
RegisterCommand 60000 "Similarity"
Func Similarity(lParam)
Local out
If Not FileExist("%TEMP%\~sim.vbs") Then
ProcessExecGetOutput out %COMSPEC% '/c ECHO Wscript.Echo Inputbox("Phrase=","Similarity")>%TEMP%\~sim.vbs'
Endif
ProcessExecGetOutput /OEM out "cscript.exe" "/nologo ~sim.vbs" %TEMP%
If out = "" Then Return
IniWrite "%COMMANDER_PATH%\Plugins\wdx\Similarity\leven.ini" "Search" "Phrase" %out%
Sleep(25)
SendCommand cm_LeftSwitchToThisCustomView 13
EndFunc
Вызывается простым указанием номера команды в кнопке, что крайне удобно. Колонки в наборе у меня такие:
Код: Выделить всё
Headers13=Размер\nAvg.\nsLev\ns1\ns2\nsRO\n=
Contents13=[=tc.size.bkMG2]\n[=similarity.average]\n[=similarity.similarityLev]\n[=similarity.simil1]\n[=similarity.simil2]\n[=similarity.similRO]\n[=similarity.contains
Только один вопрос. А разве в Autorun нет сейчас возможности вызвать команду типа OPENCUSTOMVIEW с параметрами? Было бы хорошо иметь что-то вроде CommandExec OPENCUSTOMVIEW "Схожесть имён"
Добавлено: Пт июн 21, 2024 23:41
Loopback
Avada
Orion9
О как, у него и справка, оказывается, есть. Отдельно на странице плагина, не в архиве... Столько времени не замечал. Да, действительно есть такой пункт.
Orion9 писал(а):А разве в Autorun нет сейчас возможности вызвать команду типа OPENCUSTOMVIEW с параметрами?
Хороший вопрос... Пошел проверять, и похоже, отправка WM_COPYDATA не работает с этими и другими командами "с параметрами". CommandExec сделан через него. Проверил функцией на Autoit, тоже не работает. Ни при задании строкой, ни числом.
Добавлено: Сб июн 22, 2024 00:13
Orion9
Loopback
Можно, конечно, сделать вызов em_ команды, вроде CommandExec em_fields_similarity, где:
Код: Выделить всё
[em_fields_similarity]
cmd=OPENCUSTOMVIEW Схожесть имён
menu=Схожесть имён
Но при вызове из Autorun cm_ команды следующие за этой строкой, похоже, не дожидаются ее выполнения, а срабатывают раньше, чем нужно (может быть это как раз связано с WM_COPYDATA). Поэтому оставил пока переключение на 13-й набор и доделал немного код. Вот теперь окончательный вариант с двумя кнопками. Одна меняет набор колонок, вторая - запускает шаблон поиска в текущем каталоге. Прикольный плуг Similarity. Жаль, что часто забываешь о его пользе.
Код: Выделить всё
RegisterCommand 60000 "Similarity" 0
RegisterCommand 60001 "Similarity" 1
Func Similarity(lParam, nParam)
Local out, phrase, vbs
IniRead phrase "%COMMANDER_PATH%\Plugins\wdx\Similarity\leven.ini" "Search" "Phrase" "text"
vbs = '/c ECHO Wscript.Echo Inputbox("Sort objects by name similar to","Similarity","' & phrase & '")>%TEMP%\~sim.vbs'
ProcessExecGetOutput out %COMSPEC% %vbs%
ProcessExecGetOutput /OEM out "cscript.exe" "/nologo ~sim.vbs" %TEMP%
If out = "" Then Return
IniWrite "%COMMANDER_PATH%\Plugins\wdx\Similarity\leven.ini" "Search" "Phrase" %out%
Sleep(25)
If nParam = 1 Then
CommandExec em_search_similarity
Endif
SendCommand cm_LeftSwitchToThisCustomView 13
SendCommand cm_SrcSortByCol4
SendCommand cm_SrcNegOrder
EndFunc
Код: Выделить всё
[em_search_similarity]
cmd=LOADSEARCH ="Схожесть имён"
menu=Схожесть имён (Average > 30)
button=Wcmicons.dll,47
Код: Выделить всё
Схожесть имён_SearchFor=
Схожесть имён_SearchIn=
Схожесть имён_SearchText=
Схожесть имён_SearchFlags=0|002002000020|||||||||0000|||
Схожесть имён_plugin=similarity.average > 30
Добавлено: Сб июн 22, 2024 12:39
Orion9
Loopback
Решил сделать небольшую поправку в коде (так будет все-таки правильнее):
Код: Выделить всё
If RequestCopyDataInfo("A") = "L" Then
SendCommand cm_LeftSwitchToThisCustomView 13
Else
SendCommand cm_RightSwitchToThisCustomView 13
Endif
Но заметил, что в справке к RequestCopyDataInfo имеется пример:
RequestCopyDataInfo("ST") ; --> текущий путь в целевой панели
Здесь опечатка, наверное. Ведь имеется в виду RequestCopyDataInfo("TP"). А функция

очень удобная. Еще понравилось, что FileExist корректно переменные %окружения% теперь раскрывает

Добавлено: Сб июн 22, 2024 15:13
Loopback
Orion9 писал(а): Ведь имеется в виду RequestCopyDataInfo("TP")
Конечно, откуда я вообще этот ST взял?

Исправил.
Orion9 писал(а):корректно переменные %окружения% теперь раскрывает
По факту это пережиток старой командной архитектуры, но раз уж заявлено, должно работать.
Добавлено: Вс июн 23, 2024 00:11
Orion9
Loopback
GetState тоже огонь

Хотя у меня не получилось отобразить информацию о глобальных переменных. При этом локальные переменные функция GetState показывает, если вставить ее вызов отдельной строкой в тело требуемой функции.
Но вообще, хотелось бы получать информацию о глобальных переменных через кнопку, например:
Код: Выделить всё
RegisterCommand 70000 "AutorunStatus"
Func AutorunStatus(lParam)
MsgBox(GetState("vars"))
EndFunc
Было бы классно.
Остальные идентификаторы повесил пока на функциональную кнопку "Alt+F4 Выход" внизу экрана.
Код: Выделить всё
ControlSetHint /F /B:7 17 "HintFunc"
Func HintFunc()
If IsPressed (0x10) Then Return GetState("libs")
If IsPressed (0x11) Then Return GetState("threads") & auCR & GetState("procs")
Return GetState("paths")
EndFunc
С форматом вывода пока не заморачивался, но уже смотрится здорово. Минимум кода, максимум информации. Спасибо )
Еще бы имя кнопки "Alt+F4 Выход" заменить на "Autorun" и вообще чётенько было бы

Добавлено: Вс июн 23, 2024 00:34
Loopback
Orion9 писал(а):GetState тоже огонь
Ну по правде-то пока всё сыровато. Надо как-то вывод причесать, чтобы читабельно было и в едином стиле. И наверно желательно, чтобы вывод можно было более-менее легко парсить.
Orion9 писал(а):Хотя у меня не получилось отобразить информацию о глобальных переменных.
Для этого запланирован флаг (локальные, глобальные, все вместе), но он не доделан. Потому и предупреждение висит
Orion9 писал(а):Еще бы имя кнопки "Alt+F4 Выход" заменить на "Autorun" и вообще чётенько было бы
Не, это сделать это не получится. Оно и к лучшему

Добавлено: Вс июн 23, 2024 07:41
sa
Orion9 писал(а):имя кнопки "Alt+F4 Выход" заменить на "Autorun"
Строка
1078="Alt+F4 Выход" из lng-файла разве не подойдёт для замены?
Добавлено: Вс июн 23, 2024 11:27
Orion9
sa писал(а):Строка 1078="Alt+F4 Выход" из lng-файла разве не подойдёт для замены?
А я и не знал, что так просто!
Спасибо большое!
P.S.
А можно, чтобы еще при нажатии на неё что-то своё запускалось, а не выход из ТС был? ))
Loopback
Очень надеюсь, что со временем доделате - уж больно функция хороша! Особенно смотрится на панели функциональных кнопок вместо Alt+F4 после правки lng-файла ))
P.P.S
Блин, как же красиво смотрится кнопка "Autorun" всместо стандарной "Alt+F4 Выход", прям насмотрется не могу!

Уже руки чешутся сделать какое-нибудь контекстное меню для неё, и очень бы хотелось, чтобы при нажатии на нее кастомная функция срабатывала!
Добавлено: Вс июн 23, 2024 12:34
jentoso
Orion9 писал(а):
А можно, чтобы еще при нажатии на неё что-то своё запускалось, а не выход из ТС был? ))
Ghisler по данному вопросу давно сказал однозначное
нет
Добавлено: Вс июн 23, 2024 12:40
sa
Orion9 писал(а):чтобы еще при нажатии на неё что-то своё запускалось
ControlSetMouseAction ?