| View previous topic :: View next topic |
| Author |
Message |
AkulaBig
Joined: 03 Dec 2008 Posts: 472
|
(Separately) Posted: Fri Feb 13, 2026 10:45 Post subject: |
|
|
Orion9
Вы у нас единственный остались на замену автору Кстати, не в курсе, куда он так надолго исчез?
Решил побаловаться с наг-скрином ТС. Теперь не надо применять дополнительные плагины. И работа не зависит от видеокарты и драйверов. Все известные плагины по нажиманию кнопок на наг-скрине глючат на определенных видеокартах и драйверах.
| Code: |
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\NagScreen.aucfg
# NagScreen.aucfg
# ================================ Описание ================================
# Нажимает кнопку на наг-скрине.
# ================================= Примеры ================================
# Для использования скрипта в плагине Total Commander Autorun, необходимо
# включить NagScreen.aucfg в файл autorun.cfg:
# Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\NagScreen.aucfg
# ==============================================================================
# ============================== Description ===============================
# Presses a button on the nagscreen.
# ================================= Example ================================
# To use script in plugin Total Commander Autorun, it is possible enable
# NagScreen.aucfg:
# Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\NagScreen.aucfg
# ==============================================================================
Local hWnd, nTimeOut = 3000
While nTimeOut > 0
# Находим окно наг-скрина
# Find the nagscreen window
hNagScreen = WinFind(WinFind(WinFind(WinFind(WinFind(0, 'TNASTYNAGSCREEN'), _
auX64 ? "Window" : "TNotebook"), _
auX64 ? "Window" : "TPage"), _
auX64 ? "Window" : "TPanel"), _
auX64 ? "Window" : "TPanel")
If hNagScreen > 0 Then
# Определяем хэндлы кнопок для закрытия окна наг-скрина
# Define button handles for closing the nagscreen window
hButton3 = DllCall("GetWindow", "hwnd", hNagScreen, "uint", 2, "hwnd")
hButton2 = DllCall("GetWindow", "hwnd", hButton3, "uint", 2, "hwnd")
hButton1 = DllCall("GetWindow", "hwnd", hButton2, "uint", 2, "hwnd")
# Имитация клика ЛКМ
# Simulate LMB click
BM_CLICK = 245
# Нажимаем кнопку для закрытия окна наг-скрина
# Press the button to close the nagscreen window
Switch WinGetText(hNagScreen)
Case '3'
SendMessage(hButton3, BM_CLICK, 0, 0)
Case '2'
SendMessage(hButton2, BM_CLICK, 0, 0)
Case '1'
SendMessage(hButton1, BM_CLICK, 0, 0)
EndSwitch
Break
EndIf
Sleep(50)
nTimeOut -= 50
Wend
|
Чтобы не плодить сообщения, вставил в этот пост правильный код.
Last edited by AkulaBig on Sat Feb 14, 2026 21:46; edited 3 times in total |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1008
|
(Separately) Posted: Fri Feb 13, 2026 13:48 Post subject: |
|
|
AkulaBig
Кликает, проверил. Рабочее решение )
Может быть где-то дописать, что код желательно вставлять пораньше? У меня, например, несколько модулей, я вставил его в модуль Test.aucfg, который распологается ближе к концу. В результате окно заметно мелькает.
А разве наг-скрин появляется только один раз при старте? Раньше, помню, это окно могло доставать и во время копипования. Неужто Гислер совсем раздобрел к старости? )
| Quote: | | Кстати, не в курсе, куда он так надолго исчез? |
Вероятно готовится восстать как... FileZilla
Шутки шутками, хотел еще описание к Torrent.aucfg успеть сделать, как когда-то обещал, но времени что-то совсем в обрез получается. И все-таки надо добить, пока взялся и есть какое-то настроение... |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 472
|
(Separately) Posted: Fri Feb 13, 2026 18:06 Post subject: |
|
|
| Orion9 wrote: | | Может быть где-то дописать, что код желательно вставлять пораньше? |
С местом вставки очень интересная ситуация. Я начал писать после запуска всех модулей. Как-будто почуял, где надо. После написания попробовал вставить после загрузки библиотек. Не работает! Не понимаю, почему. Так что кто заинтересуется, прочитает этот пост и сам попытается найти место, где код будет работать.
| Orion9 wrote: | | В результате окно заметно мелькает. |
Ну мы с вами знаем, что можно попытаться убрать мелькание. Но я именно специально не стал ничего делать. Хочу, чтобы мелькало. Не хочется Гислера обижать. Хоть в этом ничего противозаконного и нет.
| Orion9 wrote: | | Раньше, помню, это окно могло доставать и во время копипования. |
Припоминаю, что вроде было такое. Давно уже нет.
| Orion9 wrote: | | времени что-то совсем в обрез получается |
Хорошо при Брежневе было, ни компютера, ни инета. По трое кед за лето рвал на футбольном поле. После беганья, прыганья, скаканья, когда становилось темно, книжка в руках. О нехватке времени даже не задумывались. А сейчас все время тратим фиг знает на что
А про вариант следующего окна через Autorun ничего не скажете? Что-то у меня есть смутные подозрения, что по возможности лучше делать через Autorun, чем через DllCall. Недавно столкнулся с одной ошибочкой с DllCall и стало интересно, а как это будет работать через Autorun. Сейчас уже этот функционал есть. Но проверить руки не доходят. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1008
|
(Separately) Posted: Sat Feb 14, 2026 00:32 Post subject: |
|
|
| AkulaBig wrote: | | Не работает! Не понимаю, почему. |
Возможно, окно просто не успевает появляться. Поэтому WinFind ничего не возвращает и ничего не работает. По той же причине я поставил вашу функцию в самый конец, т.е. после всех Pragma Include.
Я там исправил английский комметарий, если не возврожаете, а то получился "naked screen" после перевода Если делать софтовый перевод, желательно еще раз прогонять текст в обратную сторону, чтобы не было явных косяков.
| AkulaBig wrote: | | Не хочется Гислера обижать. |
Согласен. Когда окно триала немного задерживается при запуске, даже лучше, во всех смыслах. Ежедневно с таким сталкиваться, конечно, я вряд ли бы согласился, но для сборки самое то.
| AkulaBig wrote: | | Припоминаю, что вроде было такое. Давно уже нет. |
Это радует. А то я как-то давно с триальной версией не работал.
| AkulaBig wrote: | | Что-то у меня есть смутные подозрения, что по возможности лучше делать через Autorun, чем через DllCall. |
Помню, сталкивался с таким. Не всё получится вызвать через DllCall. Но вы нашли рабочее решение, поздравляю. Теперь я тоже его использую в сборке
Ну, и как полагается, сделал таки описание на модуль Torrent.aucfg. Да, далеко не всем нужен подобный функционал, но все-таки приятно иметь его под рукой, если потребуется:
 Hidden text Модуль Torrent.aucfg предназначен для локального поиска торрент-файлов и торрент-данных. Важно! Для работы модуля требуется последняя версия TCTorrent с поддержкой интерфейса для получения данных торрент файла:
https://forum.wincmd.ru/viewpost.php?p=140436
Модуль использует утилиту Everything (версии 1.4.1 или выше). В настройках Everything необходимо включить индексацию размеров файлов и папок: Сервис -> Настройки -> Индексирование.
Поиск работает в обе стороны: 1) поиск торрент-данных по торрент-файлу; 2) поиск торрент-файла по торрент-данным.
Можно искать как файлы, так и папки.
При поиске торрент-данных есть возможность сохранить найденные пути в текстовый файл или сразу перейти к первому найденному пути при нажатии "Нет". Текстовый файл сохраняется с тем же именем, что и торрент-файл. Находясь на полученном текстовом файле, можно выполнить команду с кодом 70502 — первый путь в файле откроется на противоположной панели.
Другие коды команд.
70500 - Поиск торрент-данных по размеру
70501 - Поиск торрент-данных по размеру с использованием Everything
70500 с модификатором Shift вызывает окно с полем редактирования, где указывается на каких дисках будет производится поиск. Строка сохраняется в wincmd.ini в секцию Autorun:
[Autorun]
TorrentDrives=e:\;f:\;g:\;i:\;j:\
Для обоих команд действует модификатор CapsLock. При включеном CapsLock начало поиска и переход к данным будет происходить автоматически без отображения диалоговых окон. Такое поведение можно зафиксировать в глобальной переменной gCapsReverse, где gCapsReverse = 1 включает обратное поведение CapsLock.
70503 - Запускает или закрывает приложение Everything
Путь к приложению указывается в заголовке модуля в переменной gEvPath. Переменные gEvAuto и gEvDelay отвечают за автозапуск приложения и задержку перед запуском при операциях поиска.
70504 - Поиск частично закаченных данных (раздач).
При поиске частично закаченных данных действуют модификаторы Ctrl и Shift. Вызов команды без модификаторов запускает поиск по именам и размерам файлов в раздаче (перебираются файлы в .torrent файле). Ctrl - Только по именам файлов. Shift - Только по размерам.
70505 - Подсчёт размера .torrent файлов. Работает с выделенными на панели файлами.
Команды 70506 и 70507 используются для отладки. Alt+Win+0 включает режим отладки, Alt+0 выводит информацию на экран и копирует ее в буфер. Отладка доступна только для кода 70504, сами комбинации прописаны в модуль через SetHotkeyAction.
70508 - Тест для проверки устойчивости
70509 - Поиск торрент-файлов по торрент-данным
Для поиска торрент-файлов необходимо создать текстовый файл %COMMANDER_PATH%\Ini\Torrent.txt, где будут перечислены пути поиска. Например:
d:\Portable\uTorrent\torrents
d:\Temp\Test
d:\Temp
d:\Temp\Software
d:\Test\TorrentData
Глубина каталогов при поиске не учитывается, поэтому пути к файлам .torrent должны быть перечислены в этом файле отдельно для каждой папки.
Также в модуле действует комбинация Alt+Win+T. Комбинация Alt+Win+T показывает подсказку о последнем запущенном .torrent файле и копирует в буфер ссылку из полей "PublisherURL" или "Comment".
Все коды команд можно использовать в кнопках, но для ускорения работы можно создать специальные em_команды и назначить горячие клавиши. Как пример использования:
usercmd.ini:
[em_torrent_data_search]
cmd=70500
[em_torrent_data_everything]
cmd=70501
[em_torrent_data_goto_txt]
cmd=70502
[em_torrent_data_name_size]
cmd=70504
[em_torrent_data_options]
cmd=70506
[em_torrent_data_dbginfo]
cmd=70507
[em_torrents_search]
cmd=70509
[em_torrents_goto]
cmd=cm_FocusTrg,em_commander_cd
[em_commander_cd_param]
cmd=CD
param=?%A0
[em_commander_cd]
cmd=CD %COMMANDER_GOTO%
[em_everything]
cmd=%COMMANDER_PATH%\Utilites\Everything\Everything.exe
param=-startup
[em_everything_exit]
cmd=%COMMANDER_PATH%\Utilites\Everything\Everything.exe
param=-exit
[em_everything_toggle]
cmd=70503
Wincmd.ini:
[Shortcuts]
A+T=em_torrent_data_search
A+E=em_torrent_data_everything
A+N=em_torrent_data_name_size
CA+N=em_torrent_data_name_size
SA+N=em_torrent_data_name_size
A+P=em_torrent_data_goto_txt
A+M=em_torrents_search
CA+M=em_torrents_search
CA+E=em_everything_toggle
Да, было бы неплохо на каждый модуль сделать такое описание, как и предлогал FallenAngel, но где ж взять столько времени, сил и вдохновения?
Со временем, может, и сделаю. А пока собрал все скрипты по этой ссылке, пусть полежат, отдохнут немного ) [Зеркало]
P.s. Я там добавил возможность переключения заголовка на InfoHeader. Если запустить тотал и удерживать CTRL, то вместо Title.aucfg запустится InfoHeader.aucfg. Удобно для тестов.
И да. Скрипты распространяются по лицензии "Республика Шкид", каждый в праве делать с ними все, что хочет, применение в собственных целях толлько приветствуется!
Last edited by Orion9 on Sat Feb 14, 2026 19:40; edited 1 time in total |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 21
|
(Separately) Posted: Sat Feb 14, 2026 11:15 Post subject: |
|
|
| Code: | SetEnv /A PATH ';%COMMANDER_PATH%\Utils' |
У меня одного это работает криво? В папке есть nircmd.exe и он периодически "забывает" про его путь.
| AkulaBig wrote: |
Закрываем наг-скрин.
Может кому-то пригодится.
|
Вставил в начало autorun.cfg. Наг-скрин не закрывается. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 472
|
(Separately) Posted: Sat Feb 14, 2026 16:50 Post subject: |
|
|
| Orion9 wrote: | | получился "naked screen" после перевода |
Ну да
Сейчас все оформил. В вызовах пояснил про место расположения. Вынес в отдельный модуль. На руборде попросили.
| Orion9 wrote: | | Ежедневно с таким сталкиваться, конечно, я вряд ли бы согласился, но для сборки самое то. |
У меня никакого дискомфорта мелькание не вызывает.
| Orion9 wrote: | | Теперь я тоже его использую в сборке |
Значит не зря мозги напрягал
| FallenAngel wrote: | | У меня одного это работает криво? |
Не проверял, но точка с запятой непонятно, что там делает.
| FallenAngel wrote: | | Вставил в начало autorun.cfg. Наг-скрин не закрывается. |
Да, надо в конец прописывать. В сборке все это оформил и прописал.
Добавлено спустя 5 минут:
Отредактировал сообщение с кодом. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1008
|
(Separately) Posted: Sat Feb 14, 2026 19:45 Post subject: |
|
|
| AkulaBig wrote: | | У меня никакого дискомфорта мелькание не вызывает. |
Ну там не только в мелькании дело. Тотал можно открыть и весь день не закрывать, а вот кричащее "НЕ ЗАРЕГИСТРИРОВАНО" из заголовка никуда не денешь. Правда придраться будет не к чему )
| AkulaBig wrote: | | Да, надо в конец прописывать. В сборке все это оформил и прописал. |
Можно в начало модуля добавить Sleep(200) или Sleep(300) для верности. Так сейчас сделано в InfoHeader.aucfg и Title.aucfg примерно по той же причине. Autorun начинает выполняться раньше, чем тотал формирует текст заголовка, если не поставить задержку, текст может оказаться не полным или неправильным.
https://forum.wincmd.ru/viewpost.php?p=137138
Но есть еще один вариант — использовать цикл ожидания. Т.е. запустить цикл и проверять каждые 50-100 миллисекунд существование окна. Если окно появится, послать нажатие. Если не появится, нужно предусмотреть выход из цикла по таймауту, 3-5 секунд. Например:
| Code: | Local hWnd, nTimeOut = 3000
While nTimeOut > 0
hWnd = WinFind(0, "TNASTYNAGSCREEN")
If hWnd > 0 Then
Break
EndIf
Sleep(50)
nTimeOut -= 50
Wend
If hWnd > 0 Then... # клик |
Если хэндл окна будет найден, клик точно должен быть не в пустоту Хотя гарантий тоже, наверное, нет. Надо на практике проверять.
| FallenAngel wrote: | | В папке есть nircmd.exe и он периодически "забывает" про его путь. |
А что в этот момент в переменных окружения? Желательно посмотреть в консоли или плагине Environment Variables, без этого трудно сказать. У вас вроде бы все правильно записано.
Добавил зеркало на архив со скриптами (посте выше). Все-таки Upload.ee не работает без бубнов пока, и это печально. |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 21
|
(Separately) Posted: Sat Feb 14, 2026 19:58 Post subject: |
|
|
AkulaBig
Ну когда модулем оформлено да еще и с нормальным описанием - тогда да, все ОК.
Медленней конечно чем с dll, лучше ловить циклом как Orion9 предлагает. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 472
|
(Separately) Posted: Sat Feb 14, 2026 20:55 Post subject: |
|
|
| Orion9 wrote: | | "НЕ ЗАРЕГИСТРИРОВАНО" из заголовка никуда не денешь |
А, понял. Дак это давно уже у меня так. Я ведь применял плагин для Авторана, прибивающий наг-скрин. С Гислером периодически приходится общаться и хочу, чтобы на моих скринах был легитимный ТС. И у меня-же в сборке нет вареза. Ну практически. Есть вопрос к инонкам.
Кстати, а вы в курсе, что сейчас ТС для России бесплатен? То-есть оплата временно не принимается и можно пользоваться демо-версией сколько угодно?
| Orion9 wrote: | | Но есть еще один вариант |
Пока у всех тестировщиков работает, поэтому не стал делать задержки. Если понадобится, конечно сделаю.
Хотя вариант с циклом ведь никакой задержки не делает. Наверное сделаю для верности. Так что мелькание можно попробовать убрать, но не хочу.
| Orion9 wrote: | | У вас вроде бы все правильно записано. |
А как-же точка с запятой?
| FallenAngel wrote: | | Медленней конечно чем с dll, лучше ловить циклом как Orion9 предлагает. |
Да не, просто я специально не стал убирать мелькание. Это решает вопрос с легитимностью.
| FallenAngel wrote: | | Ну когда модулем оформлено да еще и с нормальным описанием - тогда да, все ОК. |
Приучил я уже своих пользователей к такому оформлению На руборде вообще написали, что без этого не могут кодом воспользоваться. Да и мне самому удобно так оформлять.
Добавлено спустя 22 минуты:
| Orion9 wrote: | sa
Решение действительно рабочее, спасибо за вашу смекалку - избавили от лишней головной боли Видимо, Autorun получает текст заголовка раньше, чем Тотал его окончательно выстраивает, поэтому небольшое ожидание здесь как никогда уместно. |
А вот проблему с назначением переменной для библиотек Оракла # SetEnv OIT_DATA_PATH %COMMANDER_PATH%\Plugins\wlx\uLister решить не удается. Она должна создаться до запуска ТС.
Добавлено спустя 32 минуты:
Orion9
FallenAngel
Еще раз поправил код. Сделал через цикл. Теперь вызов работает из любого места autorun.cfg. |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 21
|
(Separately) Posted: Sun Feb 15, 2026 12:57 Post subject: |
|
|
| AkulaBig wrote: |
Еще раз поправил код. Сделал через цикл. Теперь вызов работает из любого места autorun.cfg. |
Если сразу после запуска начать куда-то кликать \ нажимать хоткеи то ТС сразу закрывается.
Если подождать несколько секунд, ничего не делая после запуска, то дальше все ОК.
Возможно, дело в:
Sleep(50)
nTimeOut -= 50
Не знаю. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 472
|
(Separately) Posted: Sun Feb 15, 2026 18:10 Post subject: |
|
|
| FallenAngel wrote: | Возможно, дело в:
Sleep(50)
nTimeOut -= 50 |
Скорей всего. Задержи большие. Может попозже потестю.
| FallenAngel wrote: | | Если сразу после запуска начать куда-то кликать \ нажимать хоткеи то ТС сразу закрывается. |
Какие хоткеи? Я ими не пользуюсь, поэтому даже предположить не могу, что надо надавить сразу после запуска ТС. Напишите конкретные, потестю. |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 21
|
(Separately) Posted: Sun Feb 15, 2026 18:37 Post subject: |
|
|
| Code: | Sleep(100)
nTimeOut -= 100 |
Похоже, что если так увеличить, то все ОК.
Можно хоткеи не жать и просто основное меню (Files, Mark, ...) попытаться вызвать. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 472
|
(Separately) Posted: Sun Feb 15, 2026 22:03 Post subject: |
|
|
| FallenAngel wrote: | | Можно хоткеи не жать и просто основное меню (Files, Mark, ...) попытаться вызвать. |
У меня все нормально. ТС не падает.
| FallenAngel wrote: | | Похоже, что если так увеличить, то все ОК. |
Ну вот поэтому я не очень хотел вводить цикл. Появилась зависимость от производительности компа. Вообще спасибо за тестирование. Может у кого-то еще будет с этим проблема. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1008
|
(Separately) Posted: Mon Feb 16, 2026 00:36 Post subject: |
|
|
| AkulaBig wrote: | | Кстати, а вы в курсе, что сейчас ТС для России бесплатен? То-есть оплата временно не принимается и можно пользоваться демо-версией сколько угодно? |
Сколько угодно? А где об этом сказано в этой фразе?
| Code: | Due to EU sanctions we cannot currently handle orders from Russia. Please use the demo version for now until the situation improves. Sorry for the inconvenience. |
| AkulaBig wrote: | | А как-же точка с запятой? |
Так того требует переменная %Path%. Запись должна работать:
| Code: | SetEnv /A PATH ";%COMMANDER_PATH%\Utilites\Sysinternals;%COMMANDER_PATH%\Scripts\Ahk" |
Может с правами что-то не так, или еще чкго. Нужно больше информации.
| AkulaBig wrote: | | А вот проблему с назначением переменной для библиотек Оракла # SetEnv OIT_DATA_PATH %COMMANDER_PATH%\Plugins\wlx\uLister решить не удается. Она должна создаться до запуска ТС. |
Вы же решили вроде эту проблему
| AkulaBig wrote: | | Сделал через цикл. Теперь вызов работает из любого места autorun.cfg. |
По идее должен работать, но есть нюансы. Если поставить в начало autorun.cfg, то код расположенный ниже не будет выполнен, пока цикл не прервется или не закончится по таймауту. Чтобы этого избежать, можно запустить цикл в отдельном потоке. Также нужно предусмотреть случай, когда пользователь использует лицензию при работе с ТС — вряд ли лишний цикл ожидания ему будет нужен.
В общем, как всегда: гладко только на бумаге...
| FallenAngel wrote: | Возможно, дело в:
Sleep(50)
nTimeOut -= 50 |
Это не должно никак влиять. Нужно разобраться, падает ли тотал в действительности или просто закрывается из-за неверно нажатой кнопки. Посмотрите в журнале Windows ошибки приложений. Если есть запись:
| Code: | Имя сбойного приложения: TOTALCMD64.EXE, версия: 11.56.0.0, метка времени: 0x00000000
Имя сбойного модуля: Autorun.wdx64, версия: 2.2.21.3, метка времени: 0x6569ee67 |
Тогда можно говорить об ошибках в Autorun. В противном случае, проблему нужно искать в коде. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|