Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3 ... 217, 218, 219
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
AkulaBig



Joined: 03 Dec 2008
Posts: 472

Post (Separately) Posted: Fri Feb 13, 2026 10:45    Post subject: Reply with quote

Orion9
Вы у нас единственный остались на замену автору Smile Кстати, не в курсе, куда он так надолго исчез?
Решил побаловаться с наг-скрином ТС. Теперь не надо применять дополнительные плагины. И работа не зависит от видеокарты и драйверов. Все известные плагины по нажиманию кнопок на наг-скрине глючат на определенных видеокартах и драйверах.
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
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1008

Post (Separately) Posted: Fri Feb 13, 2026 13:48    Post subject: Reply with quote

AkulaBig
Кликает, проверил. Рабочее решение )

Может быть где-то дописать, что код желательно вставлять пораньше? У меня, например, несколько модулей, я вставил его в модуль Test.aucfg, который распологается ближе к концу. В результате окно заметно мелькает.

А разве наг-скрин появляется только один раз при старте? Раньше, помню, это окно могло доставать и во время копипования. Неужто Гислер совсем раздобрел к старости? )

Quote:
Кстати, не в курсе, куда он так надолго исчез?

Вероятно готовится восстать как... FileZilla Smile

Шутки шутками, хотел еще описание к Torrent.aucfg успеть сделать, как когда-то обещал, но времени что-то совсем в обрез получается. И все-таки надо добить, пока взялся и есть какое-то настроение...
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 472

Post (Separately) Posted: Fri Feb 13, 2026 18:06    Post subject: Reply with quote

Orion9 wrote:
Может быть где-то дописать, что код желательно вставлять пораньше?

С местом вставки очень интересная ситуация. Я начал писать после запуска всех модулей. Как-будто почуял, где надо. После написания попробовал вставить после загрузки библиотек. Не работает! Не понимаю, почему. Так что кто заинтересуется, прочитает этот пост и сам попытается найти место, где код будет работать.
Orion9 wrote:
В результате окно заметно мелькает.

Ну мы с вами знаем, что можно попытаться убрать мелькание. Но я именно специально не стал ничего делать. Хочу, чтобы мелькало. Не хочется Гислера обижать. Хоть в этом ничего противозаконного и нет.
Orion9 wrote:
Раньше, помню, это окно могло доставать и во время копипования.

Припоминаю, что вроде было такое. Давно уже нет.
Orion9 wrote:
времени что-то совсем в обрез получается

Хорошо при Брежневе было, ни компютера, ни инета. По трое кед за лето рвал на футбольном поле. После беганья, прыганья, скаканья, когда становилось темно, книжка в руках. О нехватке времени даже не задумывались. А сейчас все время тратим фиг знает на что Smile
А про вариант следующего окна через Autorun ничего не скажете? Что-то у меня есть смутные подозрения, что по возможности лучше делать через Autorun, чем через DllCall. Недавно столкнулся с одной ошибочкой с DllCall и стало интересно, а как это будет работать через Autorun. Сейчас уже этот функционал есть. Но проверить руки не доходят.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1008

Post (Separately) Posted: Sat Feb 14, 2026 00:32    Post subject: Reply with quote

AkulaBig wrote:
Не работает! Не понимаю, почему.

Возможно, окно просто не успевает появляться. Поэтому WinFind ничего не возвращает и ничего не работает. По той же причине я поставил вашу функцию в самый конец, т.е. после всех Pragma Include.

Я там исправил английский комметарий, если не возврожаете, а то получился "naked screen" после перевода Smile Если делать софтовый перевод, желательно еще раз прогонять текст в обратную сторону, чтобы не было явных косяков.
AkulaBig wrote:
Не хочется Гислера обижать.

Согласен. Когда окно триала немного задерживается при запуске, даже лучше, во всех смыслах. Ежедневно с таким сталкиваться, конечно, я вряд ли бы согласился, но для сборки самое то.
AkulaBig wrote:
Припоминаю, что вроде было такое. Давно уже нет.

Это радует. А то я как-то давно с триальной версией не работал.
AkulaBig wrote:
Что-то у меня есть смутные подозрения, что по возможности лучше делать через Autorun, чем через DllCall.

Помню, сталкивался с таким. Не всё получится вызвать через DllCall. Но вы нашли рабочее решение, поздравляю. Теперь я тоже его использую в сборке Smile

Ну, и как полагается, сделал таки описание на модуль Torrent.aucfg. Да, далеко не всем нужен подобный функционал, но все-таки приятно иметь его под рукой, если потребуется:
 Hidden text

Да, было бы неплохо на каждый модуль сделать такое описание, как и предлогал FallenAngel, но где ж взять столько времени, сил и вдохновения? Smile

Со временем, может, и сделаю. А пока собрал все скрипты по этой ссылке, пусть полежат, отдохнут немного ) [Зеркало]

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
View user's profile Send private message
FallenAngel



Joined: 30 Dec 2025
Posts: 21

Post (Separately) Posted: Sat Feb 14, 2026 11:15    Post subject: Reply with quote

Code:
SetEnv /A PATH ';%COMMANDER_PATH%\Utils'


У меня одного это работает криво? В папке есть nircmd.exe и он периодически "забывает" про его путь.



AkulaBig wrote:

Закрываем наг-скрин.
Может кому-то пригодится.


Вставил в начало autorun.cfg. Наг-скрин не закрывается.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 472

Post (Separately) Posted: Sat Feb 14, 2026 16:50    Post subject: Reply with quote

Orion9 wrote:
получился "naked screen" после перевода

Ну да Smile
Сейчас все оформил. В вызовах пояснил про место расположения. Вынес в отдельный модуль. На руборде попросили.
Orion9 wrote:
Ежедневно с таким сталкиваться, конечно, я вряд ли бы согласился, но для сборки самое то.

У меня никакого дискомфорта мелькание не вызывает.
Orion9 wrote:
Теперь я тоже его использую в сборке

Значит не зря мозги напрягал Smile
FallenAngel wrote:
У меня одного это работает криво?

Не проверял, но точка с запятой непонятно, что там делает.
FallenAngel wrote:
Вставил в начало autorun.cfg. Наг-скрин не закрывается.

Да, надо в конец прописывать. В сборке все это оформил и прописал.

Добавлено спустя 5 минут:

Отредактировал сообщение с кодом.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1008

Post (Separately) Posted: Sat Feb 14, 2026 19:45    Post subject: Reply with quote

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... # клик

Если хэндл окна будет найден, клик точно должен быть не в пустоту Smile Хотя гарантий тоже, наверное, нет. Надо на практике проверять.
FallenAngel wrote:
В папке есть nircmd.exe и он периодически "забывает" про его путь.

А что в этот момент в переменных окружения? Желательно посмотреть в консоли или плагине Environment Variables, без этого трудно сказать. У вас вроде бы все правильно записано.

Добавил зеркало на архив со скриптами (посте выше). Все-таки Upload.ee не работает без бубнов пока, и это печально.
Back to top
View user's profile Send private message
FallenAngel



Joined: 30 Dec 2025
Posts: 21

Post (Separately) Posted: Sat Feb 14, 2026 19:58    Post subject: Reply with quote

AkulaBig
Ну когда модулем оформлено да еще и с нормальным описанием - тогда да, все ОК. Cool

Медленней конечно чем с dll, лучше ловить циклом как Orion9 предлагает.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 472

Post (Separately) Posted: Sat Feb 14, 2026 20:55    Post subject: Reply with quote

Orion9 wrote:
"НЕ ЗАРЕГИСТРИРОВАНО" из заголовка никуда не денешь

А, понял. Дак это давно уже у меня так. Я ведь применял плагин для Авторана, прибивающий наг-скрин. С Гислером периодически приходится общаться и хочу, чтобы на моих скринах был легитимный ТС. И у меня-же в сборке нет вареза. Ну практически. Есть вопрос к инонкам.
Кстати, а вы в курсе, что сейчас ТС для России бесплатен? То-есть оплата временно не принимается и можно пользоваться демо-версией сколько угодно?
Orion9 wrote:
Но есть еще один вариант

Пока у всех тестировщиков работает, поэтому не стал делать задержки. Если понадобится, конечно сделаю.
Хотя вариант с циклом ведь никакой задержки не делает. Наверное сделаю для верности. Так что мелькание можно попробовать убрать, но не хочу.
Orion9 wrote:
У вас вроде бы все правильно записано.

А как-же точка с запятой?
FallenAngel wrote:
Медленней конечно чем с dll, лучше ловить циклом как Orion9 предлагает.

Да не, просто я специально не стал убирать мелькание. Это решает вопрос с легитимностью.
FallenAngel wrote:
Ну когда модулем оформлено да еще и с нормальным описанием - тогда да, все ОК.

Приучил я уже своих пользователей к такому оформлению Smile На руборде вообще написали, что без этого не могут кодом воспользоваться. Да и мне самому удобно так оформлять.

Добавлено спустя 22 минуты:

Orion9 wrote:
sa
Решение действительно рабочее, спасибо за вашу смекалку - избавили от лишней головной боли Very Happy Видимо, Autorun получает текст заголовка раньше, чем Тотал его окончательно выстраивает, поэтому небольшое ожидание здесь как никогда уместно.

А вот проблему с назначением переменной для библиотек Оракла # SetEnv OIT_DATA_PATH %COMMANDER_PATH%\Plugins\wlx\uLister решить не удается. Она должна создаться до запуска ТС.

Добавлено спустя 32 минуты:

Orion9
FallenAngel
Еще раз поправил код. Сделал через цикл. Теперь вызов работает из любого места autorun.cfg.
Back to top
View user's profile Send private message
FallenAngel



Joined: 30 Dec 2025
Posts: 21

Post (Separately) Posted: Sun Feb 15, 2026 12:57    Post subject: Reply with quote

AkulaBig wrote:

Еще раз поправил код. Сделал через цикл. Теперь вызов работает из любого места autorun.cfg.


Если сразу после запуска начать куда-то кликать \ нажимать хоткеи то ТС сразу закрывается.
Если подождать несколько секунд, ничего не делая после запуска, то дальше все ОК.

Возможно, дело в:
Sleep(50)
nTimeOut -= 50

Не знаю.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 472

Post (Separately) Posted: Sun Feb 15, 2026 18:10    Post subject: Reply with quote

FallenAngel wrote:
Возможно, дело в:
Sleep(50)
nTimeOut -= 50

Скорей всего. Задержи большие. Может попозже потестю.
FallenAngel wrote:
Если сразу после запуска начать куда-то кликать \ нажимать хоткеи то ТС сразу закрывается.

Какие хоткеи? Я ими не пользуюсь, поэтому даже предположить не могу, что надо надавить сразу после запуска ТС. Напишите конкретные, потестю.
Back to top
View user's profile Send private message
FallenAngel



Joined: 30 Dec 2025
Posts: 21

Post (Separately) Posted: Sun Feb 15, 2026 18:37    Post subject: Reply with quote

Code:
   Sleep(100)
   nTimeOut -= 100


Похоже, что если так увеличить, то все ОК.



Можно хоткеи не жать и просто основное меню (Files, Mark, ...) попытаться вызвать.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 472

Post (Separately) Posted: Sun Feb 15, 2026 22:03    Post subject: Reply with quote

FallenAngel wrote:
Можно хоткеи не жать и просто основное меню (Files, Mark, ...) попытаться вызвать.

У меня все нормально. ТС не падает.
FallenAngel wrote:
Похоже, что если так увеличить, то все ОК.

Ну вот поэтому я не очень хотел вводить цикл. Появилась зависимость от производительности компа. Вообще спасибо за тестирование. Может у кого-то еще будет с этим проблема.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1008

Post (Separately) Posted: Mon Feb 16, 2026 00:36    Post subject: Reply with quote

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 решить не удается. Она должна создаться до запуска ТС.

Вы же решили вроде эту проблему Smile
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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 217, 218, 219
Page 219 of 219

 
Jump to:  
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