Autorun

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

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

Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

AkulaBig
Некоторый оффтоп, конечно, но откуда вы взяли, что у встроенного английского меню есть "своя встроенная панель инструментов" и что это означает?
Панелей инструментов две, для обеих есть внешние файлы (по умолчанию это, как известно, default.bar и vertical.bar), если вы при их использовании удалите или переименуете какой-то, соответствующей панели просто не будет. Выбор встроенного или другого языка/меню на общее состояние текущих панелей влиять не должен никак ни с этими файлами, ни с пользовательскими.
И пользовательские кнопки в этих панелях работать не перестают. Я с появлением команды OPENLANGUAGEFILE потому и вывел все переключения языка и меню на кнопки, что там это доступно всегда в одном и том же месте одной и той же панели при каком угодно языке и меню.
Даже самая богатая фантазия
Не представит себе наши безобразия.
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Avada писал(а):AkulaBig
откуда вы взяли, что у встроенного английского меню есть "своя встроенная панель инструментов" и что это означает?
[cut]
Изображение
[/cut]
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

AkulaBig
Извините, а словесно пояснить это нельзя? Совершенно не понял, при чём тут встроенная панель инструментов.
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

AkulaBig
Пробовали завести em_restarttc.bar в usercmd.ini?
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Avada писал(а):AkulaBig
Извините, а словесно пояснить это нельзя? Совершенно не понял, при чём тут встроенная панель инструментов.
При переключении на внутренний английский перестали работать мои кнопки. То-есть inc не используется. Пришлось привязывать к внутреннему английскому внешнее английское mnu. Тогда все работает.

Добавлено спустя 4 минуты:
sa писал(а):AkulaBig
Пробовали завести em_restarttc.bar в usercmd.ini?
Не только пробовал, но и сразу-же для этого и делалось. Но только не в usercmd.ini, а в WCMD_LNG.INI. Я делаю многоязычную сборку.
Уважаемые, у меня на ру-борде есть тема с моими плагинами и сборкой. Предлагаю ее там обсуждать.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

AkulaBig писал(а):Но только не в usercmd.ini
А если попробовать (для встроенного английского)?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

AkulaBig
Проблемы привязки одних языковых файлов к другим — это одно, а мифическая "встроенная панель инструментов" — другое. Больше надоедать не буду, а в детальном обсуждении ничьих сборок я (при всём уважении) не участвую.
Даже самая богатая фантазия
Не представит себе наши безобразия.
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Avada писал(а):AkulaBig
мифическая "встроенная панель инструментов" — другое
Тогда объясните, откуда берется ПИ при встроенном английском? Полюбасе это встроенная ПИ.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

AkulaBig
Ваши умозаключения про "встроенную панель" не подтверждаются абсолютно ничем, а опровергаются запросто. Я много лет слежу за форумами и могу сказать, что вы, похоже, первый, кому эта идея пришла в голову. Но она неверна. При встроенном английском или каком угодно другом языке используются панели инструментов либо из внешних файлов по умолчанию (это default.bar и vertical.bar в рабочей папке TC), либо из файлов с именами и путями, заданными в соответствующих секциях wincmd.ini ключами Buttonbar=. Если этих файлов по указанному месту нет, не будет и панелей (опять же при любом языке). По вашей логике, без внешних файлов должен был бы загружаться некий внутренний ресурс (подобно языку интерфейса и меню), но этого не происходит. Ещё раз: языковые настройки и показ панелей инструментов — это разные независимые функции (безотносительно того, что откуда подхватывается в кнопках). Почитайте справочник по ключам: может быть, будет понятнее.
Последний раз редактировалось Avada Ср янв 08, 2025 10:36, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Avada писал(а):AkulaBig
Ваши умозаключения про "встроенную панель" не подтверждаются абсолютно ничем, а опровергаются запросто.
Хорошо, я зря написал про языковые файлы. Дал вам повод. Но ведь из usercmd.ini команды тоже не выполняются. Почему?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

AkulaBig
Давайте перейдём в ЛС, мы захламляем тему. Дайте (отдельно от всяких сборок!) пару примеров нормально оформленных пользовательских команд, которые прописаны в usercmd.ini (именно в этом универсальном файле, специально введённом для любого языка!) и при этом не выполняются при встроенном английском. Я такого пока что ни разу не встречал.
Обратная проблема, когда команда из локализованного файла типа Wcmd_rus.ini не работает со встроенным английским и много чем ещё, напротив, очень хорошо известна, только так многие годы и было. Изменилось ли тут что-то после того, как Гислер занялся не без вашего влияния в TC 11.50 обеспечением мультиязычности подсказок, надо выяснять особо (пока не могу сказать, что детально проверил всё, по новациям много другой работы).
Последний раз редактировалось Avada Ср янв 08, 2025 10:57, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Помогу вам сменить тему...))

sa
Блин, я офигел, как гладко работает! Помните, была проблема с SendMessage(AUTORUN_TCHANDLE, 11, 0, 0) и почему приходилось перерисовавыть окно ТС через TCFS2? Сейчас попробовал и поразился :shock: И TCFS2 теперь для этого не нужен, достаточно просто зарегистрировать команду и вызывать ее по коду:

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

RegisterCommand 61002 "SwitchTestIcon"
SetEnv TEST_ICON "%COMMANDER_PATH%\Icons\Clsw\2.ico"

Func SwitchTestIcon(lParam)
   Static c = false
   c = (c = false ? true : false)
   If c Then
      # полезные действия при включении
      SetEnv TEST_ICON "%COMMANDER_PATH%\Icons\Clsw\2.ico"
   Else
      # полезные действия при выключении   
      SetEnv TEST_ICON "%COMMANDER_PATH%\Icons\Clsw\6.ico"   
   Endif   
   SendMessage(AUTORUN_TCHANDLE, 11, 0, 0)
   SendCommand 2945
   sleep(10)
   SendMessage(AUTORUN_TCHANDLE, 11, 1, 0)
   WinRedraw(1)
EndFunc

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

TOTALCMD#BAR#DATA
61002

%TEST_ICON%
Тест перреключения иконки

1
-1
AkulaBig
Что-то я сразу упустил этот момент, но вы же сейчас можете добавить к своему коду буквально пару строк, и тем самым придать красоты и динамики заголовоку! Да и поток при этом будет выпонять еще одну полезную функцию, а не только следеить за переключением языка:
[cut]

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

Sleep(200)

Global StartTitle = WinGetText()

Global script = %COMMANDER_PATH% & "\Scripts\ChangeLang.vbs"
Global ini = %COMMANDER_PATH% & "\Ini\User.ini"
Global dest = "User"

RunThread ThreadWatchLang

Func ThreadWatchLang
	Local sect, cpu, mls, lng1, lng2, MainMenu

	lng1 = AUTORUN_TCLANG
	While 1
		lng2 = AUTORUN_TCLANG
		If Not (lng1 = lng2) Then
			Switch lng2
				Case 'ENG'
					sect = "[User_eng]"
				Case 'RUS'
					sect = "[User_rus]"
			EndSwitch
			ShellExec /SW_HIDE /WAIT '%windir%\system32\cscript.exe' '"%script%" "%sect%"'
			CommandExec cm_ReloadBarIcons
			lng1 = lng2
		Else
			If AUTORUN_TCLANG = 'ENG' Then
				IniRead MainMenu %COMMANDER_INI% "Configuration" "Mainmenu"
					If MainMenu = "" Then
						CommandExec em_changelng_mnu
				EndIf
			EndIf
		EndIf

		cpu = GetCPUUsage()
		If cpu < 60 Then
			mls = 500
		ElseIf cpu < 90 Then
			mls = 700
		Else
			mls = 1000
		EndIf
		# OutputDebugString("Autorun: mls = " & mls & " lng1 = " & lng1 & " lng2 = " & lng2)
		WinSetText(StartTitle & "  |  Memory: " & GetMemStats(0) & "%  CPU: " & cpu & "%")
		Sleep(mls)
	Wend
EndFunc

[/cut]
При желании можете еще туда GetNetInterfaceInfo подключить, пример в справке есть :) Sleep в начале обязателен, иначе при запуске новых копий ТС может пропадать информация о номере в заголовке. Credit to sa.)
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Давайте лучше закроем эту тему. Мне не интересно что-то доказывать. Для того, чтобы что-то доказать, мне надо кучу действий произвести. Пусть этим занимается, кто помоложе. Вот смотрите:
Изображение
Видите, я перешел на внутренний английский, а меню осталось на русском. Представляете, сколько мне сейчас надо написать кода, чтобы начать хейтить. А кто мне за это заплатит? Не денег, а времени. Я в таком возрасте, что не могу разбрасываться временем, чтобы кому-то что-то доказывать.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

AkulaBig
Как угодно. Я тоже далеко не молод, и у меня тоже есть на что потратить время. Скрин вижу. А вы чего ожидали? Меню "Запуск" никаким боком не имеет вообще никакого отношения к переключению языка, потому что это секция [user] из INI-файла, которая просто хитрым способом отображается в главном меню в одном и том же виде.
Даже самая богатая фантазия
Не представит себе наши безобразия.
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Avada писал(а):которая просто
В том-то и дело, что все непросто. Согласитесь, если Гислер говорит о поддержки мультиязычности, он обязан поддерживать встроенные функции. Я ему написал про STARTMENU и меню избранных каталогов на оф форуме. И был послан в далекий путь.
Ответить