Autorun

Обсуждение только плагинов и утилит для Total Commander.

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

FallenAngel
Сообщения: 47
Зарегистрирован: Вт дек 30, 2025 20:01

Сообщение FallenAngel »

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

   Sleep(100)
   nTimeOut -= 100
Проверил на другом ПК. Все равно временами закрывает ТС. Именно закрывает, а не падает т.к. в %PROGRAMDATA%\Microsoft\Windows\WER\ReportArchive - пусто.

Чтобы этого избежать, можно запустить цикл в отдельном потоке. Также нужно предусмотреть случай, когда пользователь использует лицензию при работе с ТС — вряд ли лишний цикл ожидания ему будет нужен.
Наверное, требует доработки с учетом озвученного.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

AkulaBig писал(а):Ага
Вопрос в силе: где об этом сказано в этой фразе?

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

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.
Я не пытаюсь вас поймать. Если вы действительно уточняли у Гислера, что он имеет в виду под этой фразой — это одно. Но если вы самостоятельно делаете такой вывод, что можно пользоваться сколько угодно — это совершенно другое.

Фраза опубликованная на сайте буквально гласит: "пользуйтесь пока демо версией до улучшения ситуации". Однако о снятии триального периода c демо версии ничего не сказано. А как известно, лишних оговорок у юристов не бывает.

Вот если бы Гислер написал "пользуйтесь пока демо версией без ограничений по пробному периоду, до улучшения ситуации", тогда и вопросов не было. А так...
AkulaBig писал(а):эта переменная НЕ добавляется к системной.
Она не добавляется к системной, но должна работать по тем же принципам, только в контексте приложения.
AkulaBig писал(а):Не, нет решения.
Что вы пытаетесь достичь с этой переменной? Loopback, кажется, предлагал дополнительный вариант с прямой записью в реестр, пробовали?
AkulaBig писал(а):Я это проверил.
Что проверили? Не понятно...
FallenAngel писал(а):Именно закрывает, а не падает т.к. в %PROGRAMDATA%\Microsoft\Windows\WER\ReportArchive - пусто.
Чтобы дополнительно убедиться, что именно закрывает, а не падает, можно в секцию финализации поставить MsgBox(). Тогда при корректном завершении ТС будет всплывать сообщение. А что касается ошибок, нужно еще про этот путь не забыть %SystemRoot%\System32\Winevt\Logs\Application.evtx. Там тоже могут быть ошибки приложений. Есть утилита MyEventViewer от того же NirSoft, можно сразу открыть журнал из командной строки:

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

MyEventViewer.exe /EventLogNames "Application" /VisibleEventTypes 7 /ShowOnlyLastEvents 0
Или взять более поздний вариант FullEventLogView.
FallenAngel писал(а):Наверное, требует доработки с учетом озвученного.
Лицензию можно проверять простым наличием файла wincmd.key в каталоге. А поток запускается всего одним вызовом RunThread. Тут уж Loopback постарался сделать все максимально просто и комфортно.

Что-то он куда-то совсем пропал, даже взгруснулось как-то и трек турецкий вспомнился... После божественной гитарки (1.43) припев начинается... в тему :)
[cut]

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

Durdu dünya                Мир остановился
Yokluğunda, yokluğunda     В твоем отсутствии, в твоем отсутствии.
O aynı his                 Знакомое чувство,
O aynı yanılsama           Знакомая иллюзия.

https://www.amalgama-lab.com/songs/s/she_past_away/durdu_dunya.html
[/cut]
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

FallenAngel
А у Вас случайно в папке с TC не лежит wincmd.key, который не от этой версии? В таком случае другой nag будет выскакивать.
TC 11.58 combo, Windows 11 x64
Аватара пользователя
BeTeP
Сообщения: 135
Зарегистрирован: Чт мар 31, 2005 00:57
Откуда: Санкт-Петербург

Сообщение BeTeP »

Orion9 писал(а):Лицензию можно проверять простым наличием файла wincmd.key в каталоге.
Файл может быть не только wincmd.key, но и tcmdkey.zip

Также файл ключа может находиться совершенно в другом месте. Параметр "KeyPath" в wincmd.ini.
«The Truth Is Out There»
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Потестировал, пока выдалась такая возможность.

Ничего у меня не падает хоть с кликами, хоть без кликов.

Даже больше скажу: сейчас наг-скрин закрывается практически моментально — иногда его даже не видно — кажется, просто окно заставки.

FallenAngel
Можете попробовать на сборке скриптов, которую я выкладывал, и посмотреть повторяется у вас проблема или нет.

Для начала нужно заменить функцию в модуле Test.aucfg на новую:
[cut]

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

# Nagscreen remover by AkulaBig
Func NagScreen()
    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 
EndFunc 
[/cut]
В autorun.cfg нужно перенести NagScreen() со старого места:

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

Pragma Include %COMMANDER_PATH%\Ini\Scripts\Torrent.aucfg
Pragma Include %COMMANDER_PATH%\Ini\Scripts\Monitor.aucfg
Pragma Include %COMMANDER_PATH%\Ini\Scripts\Clusters.aucfg
Pragma Include %COMMANDER_PATH%\Ini\Scripts\Functions.aucfg

#Pragma AutorunWindow
NagScreen()
На новое чуть выше:

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

LoadLibrary Plugins\TCFS2Tools.dll
LoadLibrary Plugins\Autorun_Tweaks.dll
LoadLibrary Plugins\Autorun_Sysinfo.dll
LoadLibrary Plugins\Autorun_Runtime.dll
LoadLibrary Plugins\Autorun_Process.dll
LoadLibrary Plugins\Autorun_RegExp.dll
NagScreen()
Пока проблем не наблюдаю.
BeTeP писал(а):Также файл ключа может находиться совершенно в другом месте. Параметр "KeyPath" в wincmd.ini.
Почему-то я в этом не сомневался :) Может быть еще что-то есть, что стоит учесть?
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Orion9 писал(а):уточняли у Гислера, что он имеет в виду под этой фразой — это одно
Ничего я не уточнял.
Orion9 писал(а):сколько угодно
Я думаю еще долго можно будет пользоваться.
В общем не обращайте внимание, я как-бы с юморком это написал.
Orion9 писал(а):Она не добавляется к системной, но должна работать по тем же принципам, только в контексте приложения.
Я о чем и говорю. У системной переменной нет вначале точки с запятой. Ну работает такая запись и пусть работает.
Orion9 писал(а):Loopback, кажется, предлагал дополнительный вариант с прямой записью в реестр, пробовали?
Нет, конечно. Какая запись в реестр для портативной сборки? Кажется этот вопрос решен. Может за счет цикла для наг-скрина, но сейчас вариант с starx пока работает. Чтобы понять это точно, надо погонять подольше. Раньше тоже то работает, то не работает. Сейчас вроде жестко потестил - работает. Но пока не хотел об этом писать.
Orion9 писал(а):Что вы пытаетесь достичь с этой переменной?
Чтобы временная папка создавалась по нужному пути. А то в последней версии библиотек Оракла 8.5.8 она стала создаваться только в апдата. Независимо, куда ее прописывают.
Orion9 писал(а):Что проверили? Не понятно...
Работу при наличии wincmd.key.
FallenAngel
Сообщения: 47
Зарегистрирован: Вт дек 30, 2025 20:01

Сообщение FallenAngel »

Orion9 писал(а): Можете попробовать на сборке скриптов, которую я выкладывал, и посмотреть повторяется у вас проблема или нет.
Я просто код ниже вставил в autorun.cfg - TC закрывается.
Я пока остался на оригинальном варианте только с:
Sleep(100)
nTimeOut -= 100
Тоже закрывается, но редко. Может 1 из 10 раз.
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

FallenAngel
А что-то подобное ПантоСвитчер у вас стоит? Понятно-же, что проблему надо в системе искать.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

AkulaBig писал(а):Ничего я не уточнял.
Почему? Вы же с ним коннектах, вроде.
AkulaBig писал(а): я как-бы с юморком это написал.
Ну сам Гислер как бы тоже с юморком написал. Фразу на сайте можно трактовать по разному. Возможно он и имел в виду бессрочный трайал (раз уж нет возможности оплаты), но это надо еще уточнять.
AkulaBig писал(а): У системной переменной нет вначале точки с запятой.
Комнда SetEnv /A PATH добавляет текст к локальной переменной %PATH%, изначальный текст для переменной берется из системной %PATH%. Что происходит с переменными окружения, лучше всего посмотреть через плагин Environment Variables. Там видно все типы переменных и отличия между ними.
AkulaBig писал(а): А то в последней версии библиотек Оракла 8.5.8 она стала создаваться только в апдата.
Так может проблема была в самих библиотеках Оракла? :)
AkulaBig писал(а):Работу при наличии wincmd.key.
Я это понял. Но если не внести изменения в код, то при наличии wincmd.key окно триала не покажется, а код, расположенный ниже цикла, не будет выполнен раньше, чем через 3 секунды. С этим нужно что-то делать.
AkulaBig писал(а):Тоже закрывается, но редко. Может 1 из 10 раз.
Если у вас в конфигурации много SetHotkeyAction и ControlSetMouseAction (т.е. перехватов нажатий клавиш и кликов мыши), то теоретически может что-то пойти не так. Хотя, как я писал выше, у себя я такой проблемы не наблюдаю. Код от AkulaBig рабочий. Можете взять его сборку и на ней проверить. Если проблема не повторится, то значит точно проблема скорее всего в вашем конфиге, или в каких-то других настройках ТС, например в используемых плагинах. Или стороннем софте, как написал AkulaBig.
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Orion9 писал(а):Так может проблема была в самих библиотеках Оракла?
Конечно в самих библиотеках.
Orion9 писал(а):код, расположенный ниже цикла, не будет выполнен раньше, чем через 3 секунды.
Удивительно, но все работает хорошо:
Изображение
Orion9 писал(а):AkulaBig писал(а):
Тоже закрывается, но редко. Может 1 из 10 раз.
Я такое не писал :)

Добавлено спустя 1 час 49 минут:
Orion9 писал(а):Комнда SetEnv /A PATH добавляет текст к локальной переменной %PATH%, изначальный текст для переменной берется из системной %PATH%. Что происходит с переменными окружения, лучше всего посмотреть через плагин Environment Variables. Там видно все типы переменных и отличия между ними.
Я через плагин Environment Variables не проверял, думал и так понятно, что запись не рабочая. А сейчас проверил, все еще хуже.
SetEnv /A PATH ";%COMMANDER_PATH%\Utilites\Sysinternals;%COMMANDER_PATH%\Scripts\Ahk"
вообще ничего не создает из-за параметра /A.
SetEnv PATH ";%COMMANDER_PATH%\Utilites\Sysinternals;%COMMANDER_PATH%\Scripts\Ahk"
создает вот такую переменную, как я и думал:
Изображение
При этом у меня перестает работать некоторый функционал ТС. Насколько много не работает глубоко не копал.

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

Почитал хэлп. Получается это ошибка в Autorun. Я-то просто уже где-то пробовал такой вариант, поэтому знаю, что он не рабочий. Но хэлп тогда не читал.
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Orion9
Хотите поржать от души?
Изображение
Изображение
Нету переменной ValeryK. В Вашей сборке также. Есть мысли, почему так?
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

AkulaBig
Здесь уже ранее обсуждалось, поищите. /A не применяется, а точка с запятой надо ставить в конце.
TC 11.58 combo, Windows 11 x64
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

jentoso
Запись SetEnv /A PATH ";%COMMANDER_PATH%\Utilites\Sysinternals;%COMMANDER_PATH%\Scripts\Ahk" взята из кода выше. Без /A создается новая переменная, а не добавляется в конец существующей. Выше я написал про этот тест и приложил скрин. Без /A новая переменная создается и при прописке в начале файла autorun.cfg. А вот добавить к существующей переменной, как прописано в этом коде, получается только при объявлении переменной после Pragma Include. Очень интересно.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

AkulaBig
Про /A я ошибся, тогда речь шла про /EV. Автор говорил, что в релизе уберет его из примера в конфиге.
TC 11.58 combo, Windows 11 x64
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

jentoso писал(а):речь шла про /EV
Да, ждем релиза. У меня эта опция уже убрана в файле примера. Но я не помню, возможно сам убрал.
Ответить