Скрипты Autohotkey

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion писал(а):

Код: Выделить всё

"%COMMANDER_DRIVE%\Users\NIKA\Downloads\F4-Mouse\F4W.exe" "%COMMANDER_DRIVE%\Users\NIKA\Downloads\F4-Mouse\F4W.ahk"
Скомпилированный в exe код пытается запустить тот же нескомпилированный. Отлично! Всё сразу заработает! :lol:
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher

Если скрипт не работает!

1) http://forum.wincmd.ru/viewpost.php?p=14148
2) Кода ошибки нет. Пока толком не понял как запустить!?
3)

Код: Выделить всё

#SingleInstance force 
#NoTrayIcon 
#IfWinActive ahk_class TTOTAL_CMD
MButton:: 
SendMessage, 0x433, 2127,,, ahk_class TTOTAL_CMD ; cm_OpenRecycled 
return
4) Ну TC от Matros.
5) Windows LTSB x64
6) Есть компилятор "Ahk2Exe.exe".

Не могу понять как сделать правильно кнопку (и нужна ли она вообще)!? А ещё как правильно прописать в autorun.cfg клик по "MButton"?
В итоге хочу чтоб клик по "MButton" происходила очистка корзины, без её открытия.

P.S.
Данный топик перечитал 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion писал(а):и нужна ли она вообще?
Не нужна.
rediffusion писал(а):А ещё как правильно прописать в autorun.cfg клик по "MButton"?
Зачем? Это делает сам скрипт.

В autorun.cfg при отсутствии пишется в начальных строках загрузка библиотеки:

Код: Выделить всё

LoadLibrary Plugins\Autorun_Sysinfo.dll
А после где-то снизу (до Pragma AutorunFinalizeSection):

Код: Выделить всё

ShellExec /T "%COMMANDER_PATH%\Scripts\AutoHotKey\AutoHotkeyU%SYSINFO_OSARCH%.exe" '"%COMMANDER_PATH%\Scripts\AutoHotKey\OpenRecycledBinByMiddleButton.ahk"'
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher

Благодарю!
Работает и открывает папку "Корзина". Такое в "TC" у меня в принципе есть.
Я хочу чтоб просто "ОЧИСТКА КОРЗИНЫ" была на кнопке "MiddleButton".
В "TC" у меня например есть такая команда:

Код: Выделить всё

rempty tcimg=$cm540
Вот как её туда прикрутить?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion

Код: Выделить всё

MButton::FileRecycleEmpty
Но какое это будет иметь отношение к ТС, если это можно делать и без привязки к окну?:

Код: Выделить всё

#IfWinActive ahk_class TTOTAL_CMD
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher писал(а): если это можно делать и без привязки к окну?:
Я не знаю. Только пару дней назад узнал об этой утилите.
Что изменить в этом скрипте, чтоб было правильно?

Код: Выделить всё

#SingleInstance force 
#NoTrayIcon 
#IfWinActive ahk_class TTOTAL_CMD
MButton:: 
SendMessage, 0x433, 2127,,, ahk_class TTOTAL_CMD
return
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion

Код: Выделить всё

#SingleInstance force
#NoTrayIcon
MButton::FileRecycleEmpty
Но опять же. Какой тогда смысл привязывать этот скрипт к ТС, если его можно закинуть в автозагрузку ОС?
И к подфоруму это по сути не имеет отношения. Другое дело было бы с хоткеями самого ТС.

P.S.: Вы в курсе, что цитировать выделенный текст сообщения можно, нажимая "цитировать" под ником в блоке профиля, слева от поста?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher писал(а):если его можно закинуть в автозагрузку ОС?
Ов, да вы знаете я хочу чтоб только в "TC" выполнялся данный скрипт, но не вне. А что если в игру буду играть и нужно чтоб не был занят "MButton"?

P.S. Теперь в крусе!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion
:? Издеваетесь? Сперва 'Я не знаю. ... Что изменить в этом скрипте', а теперь 'чтоб только в "TC"'. Так и пропишите директивное условие над последней строкой.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Рабочий скрипт:

Код: Выделить всё

#SingleInstance force 
#NoTrayIcon 
#IfWinActive, ahk_class TTOTAL_CMD
MButton::FileRecycleEmpty
Добавлено спустя 58 минут:

Flasher

Такой вопрос, что прописать для завершения скрипта в "Диспетчер задач". После закрытия "TC" скрипт продолжает висеть.
Пересмотрел такие варианты:

Код: Выделить всё

Exit
ExitApp
onExit
Работающего кода не нашёл для моего случия. Мож вы что то знаете?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion
Версия Autorun актуальная?
Ключ /T призван завершать запускаемую программу с закрытием ТС.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher писал(а):Где AutoHotKey?
Я заменил на такое название "RecycleBinEmpty.exe" мне удобнее выискивать в папке и "Диспетчер задач". А если таких AutoHotkey.exe много станет со временем, то как мне определить какой скрипт за какой программой стоит?
Или можно в один .exe вшивать много скриптов?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion писал(а):А если таких AutoHotkey.exe много станет со временем
Тем более! Как можно называть интерпретатор по имени только одного скрипта из группы запущенных?
rediffusion писал(а):то как мне определить какой скрипт за какой программой стоит?
См. последнее предложение.
rediffusion писал(а):Или можно в один .exe вшивать много скриптов?
В один код можно запихнуть кучу всего. Для этого не нужна компиляция.
rediffusion писал(а):Пересмотрел такие варианты:
Между 2-й и 3-й строкой на всякий:

Код: Выделить всё

WinWaitClose, ahk_class TTOTAL_CMD
ExitApp
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher

Я не понял вот эти решетки # убирать или оставлять перед

Код: Выделить всё

Pragma AutorunFinalizeSection
Pragma AutorunBlockUnload
LoadLibrary Plugins\Autorun_Sysinfo.dll
У меня "TC" 64-bit. Возможно вот тут нужно добавить:

Код: Выделить всё

Sysinfo.dll64
Во всяком случии вот такая запись мне помогла (как только жмякаю на крестик в "TC" скрипт сразу исчезает):

Код: Выделить всё

WinWaitClose, ahk_class TTOTAL_CMD 
ExitApp
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion писал(а):Я не понял вот эти решетки # убирать или оставлять перед
А выяснить в справке религия не позволяет?
Общая информация\Syntax\Основы писал(а):Строка, начинающаяся с символа #, трактуется как комментарий и игнорируется.
Если после #Pragma AutorunFinalizeSection ничего нет, то её лучше оставить закомментированной. Но и она способствует исправлению текущей проблемы:

Код: Выделить всё

LoadLibrary Plugins\Autorun_Process.dll

# тут всяко разно

Pragma AutorunFinalizeSection
If ProcessExist /F '%COMMANDER_PATH%\Scripts\AutoHotKey\AutoHotkeyU%SYSINFO_OSARCH%.exe' Then
ProcessTerminate /F /TT /A '%COMMANDER_PATH%\Scripts\AutoHotKey\AutoHotkeyU%SYSINFO_OSARCH%.exe'
EndIf
rediffusion писал(а):У меня "TC" 64-bit. Возможно вот тут нужно добавить:
Нет. Опять же смотрим в help_ru.chm: Команды\LoadLibrary\Примечание.
rediffusion писал(а):Во всяком случии вот такая запись мне помогла
Иначе и быть не могло.
Последний раз редактировалось Flasher Пт мар 15, 2019 11:26, всего редактировалось 2 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить