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 ... , 195, 196, 197  Next
 
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: 408

Post (Separately) Posted: Thu Aug 07, 2025 06:58    Post subject: Reply with quote

Loopback wrote:
такое на обеих разрядностях?

Да. Только в ТС32 нет знака вопроса в Class.
Loopback wrote:
в случае нормального выполнения, в строке Class: показывается "TTOTAL_CMD"?

Да:

Loopback wrote:
вроде как проблемы автозакрытия окна никогда на 32-битном тотале не было.

Забыл спросить. Ничего не понятно. Окно ошибки должно автозакрываться даже не дав мне прочитав его? Раньше я его закрывал сам.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1581

Post (Separately) Posted: Thu Aug 07, 2025 12:31    Post subject: Reply with quote

AkulaBig wrote:
Окно ошибки должно автозакрываться даже не дав мне прочитав его?

Нет, конечно, имеется в виду тот баг в x64, из-за чего окно самозакрывается едва открывшись.

В общем, ещё раз прошу проверить с новой версией, по той же ссылке. Если и сейчас не прояснится, то видимо придется исправлять последствие, а выяснение глубинной причины отложить до момента, когда я смогу это повторить.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 408

Post (Separately) Posted: Thu Aug 07, 2025 12:57    Post subject: Reply with quote

Loopback
На всякий случай норм тоже прикладываю:


Сейчас еще при запуске ТС инфа стала появляться. Надо ее скрин? Там все норм.

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

Loopback wrote:
Нет, конечно, имеется в виду тот баг в x64, из-за чего окно самозакрывается едва открывшись.

Понятно. У меня не автозакрывалось окно, если наг-скрин не появлялся. А сейчас на обоих разрядностях автозакрывается.
А попробую-ка я любимую ошибку воспроизвести. Знак процента прилепить. Точно помню, окно себя правильно вело при этой ошибке.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1581

Post (Separately) Posted: Thu Aug 07, 2025 13:10    Post subject: Reply with quote

AkulaBig wrote:
Сейчас еще при запуске ТС инфа стала появляться. Надо ее скрин?

Да, данные инициализации тоже нужно для случая, когда проблема проявляется. Лучше всего если получится вся информация на одном скрине, как на первом.

Да, и еще: вы разные тесты случайно делаете не с перезапуском RestartScript?
Back to top
View user's profile Send private message
yahuu



Joined: 22 Jun 2023
Posts: 34

Post (Separately) Posted: Thu Aug 07, 2025 14:15    Post subject: Reply with quote

Почему только первый является действительным?

Code:
SetHotkeyAction /K:A /H:F ShowPopupMenu %COMMANDER_PATH%\User\Files.BAR 500 600
SetHotkeyAction /K:A /H:F ShowPopupMenu(Set(%COMMANDER_PATH%"\User\Files.BAR"),500,600)
SetHotkeyAction /K:A /H:F ShowPopupMenu(COMMANDER_PATH & '\User\Files.BAR',500,600)
SetHotkeyAction /K:A /H:F ShowPopupMenu(COMMANDER_PATH & "\User\Files.BAR",500,600)
str = COMMANDER_PATH & "\User\Files.BAR"
SetHotkeyAction /K:A /H:F ShowPopupMenu(str,500,600)
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 408

Post (Separately) Posted: Thu Aug 07, 2025 14:25    Post subject: Reply with quote

Loopback wrote:
вся информация на одном скрине, как на первом.


Loopback wrote:
вы разные тесты случайно делаете не с перезапуском RestartScript?

Я вот и хотел написать. Эта ошибка у меня прописана при переключении языка. В ходе которого я делаю перезагрузку. Так что данные инициализации навряд-ли интересны. Попробую в основном autorun.cfg прописать.
Ну и вот реакция на нормальную ошибку:

Как видите, окно не исчезает. И показывается в правильном положении. И все это в ТС64!

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

Loopback
Нет, больше найти место для этого косяка не удалось. В остальных случая хорошая ошибка появляется.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1581

Post (Separately) Posted: Thu Aug 07, 2025 20:56    Post subject: Reply with quote

AkulaBig
Спасибо за тесты. В всяком случае уже видно, что изначально найденный хэндл окна ТС проходит тест, и, если дать возможность скрипту выполниться до конца, то и в конце тест тоже успешно проходится. Ошибка возникает только в оконной функции диалога, значит невалидным хэндл становится непосредственно до вызова этого диалога. Есть подозрение, что какая-то функция незадолго до места, где возникает "плохая" ошибка, лезет куда-то не туда и что-то портит. Это, кстати, бьется с вашим наблюдениями

AkulaBig wrote:
То-есть написал я строке 111. Появилось сообщение об ошибке. Написал 111 на 15-20 строк ниже. Окно сообщения об ошибке стало появляться в верхнем левом углу экрана

AkulaBig wrote:
Нет, больше найти место для этого косяка не удалось. В остальных случая хорошая ошибка появляется.


Хорошо бы посмотреть эти 15-20 строк перед "плохой" ошибкой.

AkulaBig wrote:
Так что данные инициализации навряд-ли интересны.

Очень даже интересны, при инициализации получаем хэндл окна тотала.


yahuu wrote:
Почему только первый является действительным?

Во втором и остальных случаях вы смешиваете командный синтаксис с функциональным.

Функция здесь только одна - SetHotkeyAction, со своими параметрами. ShowPopupMenu здесь - это не функция как таковая, а строка с именем функции. Это (не считая переключателей) - первый параметр функции SetHotkeyAction. Все параметры после имени функции (%COMMANDER_PATH%\User\Files.BAR 500 600) - это тоже параметры SetHotkeyAction, второй, третий и четвертый. При нажатии комбинации клавиш будет вызвана функция ShowPopupMenu и ей будут переданы эти параметры.

Это частая ошибка. Для лучшего понимания первую запись можно записать так (обратите внимание на кавычки вокруг ShowPopupMenu, это просто строка):

Code:
SetHotkeyAction /K:A /H:F "ShowPopupMenu" "%COMMANDER_PATH%\User\Files.BAR" "500" "600"


Еще лучше это видно в функциональной записи:

Code:
SetHotkeyAction("~/K:A /H:F", "ShowPopupMenu", COMMANDER_PATH & "\User\Files.BAR", 500, 600)


Так что нужно просто использовать либо один, либо другой синтаксис для записи целиком.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 408

Post (Separately) Posted: Thu Aug 07, 2025 21:42    Post subject: Reply with quote

Loopback wrote:
Хорошо бы посмотреть эти 15-20 строк перед "плохой" ошибкой.

Дак это только в одном из файлов *.aucfg. А перед ним в других файлах сотни и тысячи строк. Может вам проще сборку скачать?
Code:
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\CharDetect.aucfg
# Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\ControlID.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\CustomFields.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\IcoNumber.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\Restart.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchAssoc.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchColor.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchDrivesIcon.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchFilesIcon.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchIniSect.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchLang.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchSound.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchTitleInfo.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchTypeHints.aucfg

Вот такой список файлов. Ошибку тестирую в SwitchLang.aucfg в функции работы с потоком. Но не факт, что где-то в другом месте это не сработает.
А так вот этот кусок:
Code:
123
      Local Buttonbar = IniRead(ini_Buttonbar, "Buttonbar", "Buttonbar", "")
      Local ButtonbarVertical = IniRead(ini_ButtonbarVertical, "ButtonbarVertical", "Buttonbar", "")
      SwitchIniSect(Set(Buttonbar), sect_Buttonbar, lng)
      SwitchIniSect(Set(ButtonbarVertical), sect_Buttonbar, lng)
      SwitchIniSect(ini_Colors, sect_Colors, lng)
      If FileExist(ini_Colors0) Then
         SwitchIniSect(ini_Colors0, sect_Colors, lng)
      EndIf
      If FileExist(ini_Colors1) Then
         SwitchIniSect(ini_Colors1, sect_Colors, lng)
      EndIf
      If FileExist(ini_Colors2) Then
         SwitchIniSect(ini_Colors2, sect_Colors, lng)
      EndIf
      If FileExist(ini_Colors3) Then
         SwitchIniSect(ini_Colors3, sect_Colors, lng)
      EndIf
      If FileExist(ini_Colors4) Then
         SwitchIniSect(ini_Colors4, sect_Colors, lng)
      EndIf
      If FileExist(ini_Colors5) Then
         SwitchIniSect(ini_Colors5, sect_Colors, lng)
      EndIf
      SwitchIniSect(ini_CustomFields, sect_CustomFields, lng)
      SwitchIniSect(ini_DirMenu, sect_DirMenu, lng)
      SwitchIniSect(ini_FileSystemPlugins, sect_FileSystemPlugins, lng)
      SwitchIniSect(ini_FileSystemPlugins, sect_FileSystemPlugins64, lng)
      SwitchIniSect(ini_HintsCustomField, sect_HintsCustomField, lng)
      SwitchIniSect(ini_ListerModes, sect_ListerModes, lng)
      SwitchIniSect(ini_Searches, sect_Searches, lng)
      SwitchIniSect(ini_User, sect_User, lng)
      SwitchIniSect(ini_ToolsBar, sect_Buttonbar, lng)
      SwitchIniSect(ini_UserBar, sect_Buttonbar, lng)
123

Первая 123 нормальное окно, второе - за пределами экрана. Конечно я их по очереди писал, не вместе.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1581

Post (Separately) Posted: Thu Aug 07, 2025 22:45    Post subject: Reply with quote

AkulaBig wrote:
А перед ним в других файлах сотни и тысячи строк. Может вам проще сборку скачать?

Кстати да, согласен, так и сделаю, завтра скачаю, посмотрю. Может и ошибку словлю.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 408

Post (Separately) Posted: Fri Aug 08, 2025 06:32    Post subject: Reply with quote

Loopback
Тестовая версия: https://www.dropbox.com/scl/fi/aqer518ldjsti5sd5kh35/TotalCommanderPortable-11.55.exe?rlkey=o7ebomkntwwh897kyjeq3u9g7&dl=0
Рабочую я уже переделал.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1581

Post (Separately) Posted: Fri Aug 08, 2025 12:56    Post subject: Reply with quote

AkulaBig
Скачал, проверил, попереставлял в разные места. По-прежнему ничего не проявляется, это было бы слишком просто.

Вроде не вижу ничего критичного в предшествующих строках, кроме функции SwitchIniSect, которая вызывается множество раз, при этом использует DllCall/Buffer, потенциально наиболее "опасные" функции. В принципе из явных ошибок там только то, что buf не освобождается функцией Free, нужно добавить

Code:
Local out = buf.GetStr(0, bytes)
Free(buf)


Но это вряд ли могло повлиять. Я бы проверил с вариантом без DllCall/Buffer, изменится ли что-нибудь. Переделал SwitchIniSect на встроенном функционале, попробуйте у себя.

 Hidden text
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 408

Post (Separately) Posted: Fri Aug 08, 2025 15:32    Post subject: Reply with quote

Loopback wrote:
По-прежнему ничего не проявляется

Возможно Винда. У меня 24 со всеми обновлениями. А у вас?
Loopback wrote:
buf не освобождается функцией Free, нужно добавить

Понял, спасибо.
Loopback wrote:
попробуйте у себя

Попробую, отпишусь.
Loopback wrote:
Переделал SwitchIniSect на встроенном функционале

Это этапы развития Autorun. На тот момент только так можно было. Поэтому у меня не мало кусков, где одни и те-же задачи решаются разным кодом. Я выше писал, что оф 2.1 у меня уже не работает.

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

Loopback
Быстро не получится протестировать. Буфер у меня в двух местах не освобождался. Прописал фри. Ничего не изменилось. Потом скопипастил вашу функция не глядя. Ошибка исчезла вообще. Но настройки сборки очень сильно множественно пострадали. Теперь мне надо разбираться с функцией.

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

Оказывается теперь просто весь мой код не работает. Буду разбираться.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1581

Post (Separately) Posted: Fri Aug 08, 2025 22:29    Post subject: Reply with quote

AkulaBig wrote:
А у вас?

23H2, хотя не думаю, что это имеет большое значение. Я ее только для тестов иногда использовал. Попробую обновить.

AkulaBig wrote:
Это этапы развития Autorun. На тот момент только так можно было.

Прекрасно понимаю. Помню мы что-то правили в этом коде. Как говорится, работает - не трогай Smile Ну а с релизной 2.1 слишком много нового появилось.

AkulaBig wrote:
Оказывается теперь просто весь мой код не работает

Ну вот собственно и подтверждение. Формально-то я проверил, но все равно что-то пошло не так.

На самом деле вовсе необязательно менять имеющийся код. Просто хотелось проверить без рискованных функций и понять причину той странной ошибки.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 408

Post (Separately) Posted: Sat Aug 09, 2025 05:33    Post subject: Reply with quote

Loopback wrote:
23H2, хотя не думаю, что это имеет большое значение.

Имеет большое значение. В 24 огромные изменения. На других форумах мы с этим столкнулись. Например, другой движок джава. Еще что-то. Может и наша проблема из-за этого.
Loopback wrote:
На самом деле вовсе необязательно менять имеющийся код.

Разберемся, просто время нужно.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 408

Post (Separately) Posted: Sat Aug 09, 2025 11:03    Post subject: Reply with quote

Loopback
Подозреваю в этом проблема:

У меня ведь все инишки в юникоде. Иначе ранее не работало.
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 ... , 195, 196, 197  Next
Page 196 of 197

 
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