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 ... 118, 119, 120, 121, 122  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Loopback



Joined: 07 Sep 2009
Posts: 1195

Post (Separately) Posted: Mon Sep 26, 2022 16:47    Post subject: Reply with quote

yozhik wrote:
Назрела хотелка.

Она, похоже, уже раньше когда-то назревала, поскольку есть в моем списке с приоритетом "подумать когда-нибудь" Smile Но пока не чувствую, что время уже пришло...
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2447

Post (Separately) Posted: Mon Sep 26, 2022 16:59    Post subject: Reply with quote

yozhik wrote:
на функциональные кнопки (клавиши) теперь можно навесить много всего полезного

А можно как-нибудь навесить установку языка (русского или английского), например, после Ctrl+D - для удобства перехода по горячим клавишам в меню избранных каталогов?
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 134

Post (Separately) Posted: Mon Sep 26, 2022 17:26    Post subject: Reply with quote

sa wrote:
навесить установку языка

Речь про установку языка в TC, если я правильно понял. Ну, при поверхностном взгляде мне кажется можно при помощи новых SetHotkeyAction и SetMessageAction в субплагине Tweaks. На некий хоткей повесить перезапись в wincmd.ini значения ключа LanguageIni и отправку TC команды перечитать wincmd.ini. Но это теоретичсссски, надо разбираться, я пока туда не лез. А в моей фразе «функциональные кнопки (клавиши)» ключевое слово всё же «кнопки», а «клавиши» только постольку, поскольку на них отображается F3/F4/F5 и т.д.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2447

Post (Separately) Posted: Mon Sep 26, 2022 17:35    Post subject: Reply with quote

yozhik wrote:
Речь про установку языка в TC

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



Joined: 07 Sep 2009
Posts: 1195

Post (Separately) Posted: Mon Sep 26, 2022 19:31    Post subject: Reply with quote

sa wrote:
Нет, языка в системе.


Язык-то всё равно меняется на уровне приложения.

С помощью вспомогательного скрипта можно сделать. В конфиге Autorun переопределить Ctrl+D:

Code:

SetHotkeyAction /K:C /H:D SetLangAndOpen

Func SetLangAndOpen()
    ShellExec /WAIT "<path_to_Autoit>\AutoIt3.exe" "<path_to_Script>\setlang.au3"
    SendCommand "cm_DirectoryHotlist"
EndFunc


Скрипт (переключает на английский, для русского строка "0419"):

Code:

_TCHSetKeyboardLayout("0409", __TCHGetActiveInstance())

Func _TCHSetKeyboardLayout($sLayoutID, $hWnd)
    Local $WM_INPUTLANGCHANGEREQUEST = 0x50
    Local $ret = DllCall("user32.dll", "long", "LoadKeyboardLayout", "str", $sLayoutID, "int", 0)
    DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, _
                                                "int", $WM_INPUTLANGCHANGEREQUEST, _
                                                "int", 1, _
                                                "int", $ret[0])
EndFunc

Func __TCHGetActiveInstance()
    Local $sInst = EnvGet("COMMANDER_HWND") ; if set by Autorun, preferable
    If ($sInst <> "") And StringIsDigit($sInst) Then Return Hwnd($sInst)
    ; Fallback to "active" window method
    Local $aList = WinList("[CLASS:TTOTAL_CMD]")
    For $i = 1 To $aList[0][0]
        If WinActive($aList[$i][1]) Then Return $aList[$i][1]
    Next
    Return 0
EndFunc
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2447

Post (Separately) Posted: Mon Sep 26, 2022 20:42    Post subject: Reply with quote

Loopback wrote:
Язык-то всё равно меняется на уровне приложения.
Понятно, просто у yozhik речь велась про ключ LanguageIni (отвечающий за используемый языковой файл), который мне не нужно менять.

Loopback wrote:
С помощью вспомогательного скрипта можно сделать.
Спасибо, сработало!
Можно теперь обойтись без внешней утилиты (для автоматического переключения языка после Ctrl+D).
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1195

Post (Separately) Posted: Mon Sep 26, 2022 22:11    Post subject: Reply with quote

Версия 2.2.7 beta

+ добавлена обновленная английская справка
- функции реестра не работали с именами параметров, содержащими "\"
+ Runtime: добавлена функция IsPressed
- опять исправлена директива LegacyExpression
- исправлена проверка переменной для цикла For
+ добавлена функция RunThread
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 304

Post (Separately) Posted: Mon Sep 26, 2022 22:56    Post subject: Reply with quote

Loopback wrote:

- функции реестра не работали с именами параметров, содержащими "\"

Теперь отрабатывает без ошибки.
_________________
TC 10.52 combo, Windows 10 x64
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 134

Post (Separately) Posted: Tue Sep 27, 2022 02:58    Post subject: Reply with quote

Loopback
Вот диалог cm_CopySamePanel (Shift+F5/F6):
Code:
IniRead CRNTLNG "%COMMANDER_INI%" "Configuration" "LanguageIni"
LngRead TREEBTN 5002 "%COMMANDER_PATH%\LANGUAGE\%CRNTLNG%"

If %AUTORUN_TCARCH% = 32 Then
  AddDialog    /W:105 /CENTER:1 "TCheckComboBox"
  AddCondition /TEXT  "TButton" 1 "%TREEBTN%"
  AddControl   /X:106 "TButton" 1
  AddControl   /X:106 "TButton" 2
  AddControl   /X:106 "TButton" 3
  AddControl   /W:109 "TMyComboBox" 1
Else
  AddDialog    /W:105 /CENTER:1 "TCheckComboBox"
  AddCondition /TEXT  "Button" 3 "%TREEBTN%"
  AddControl   /X:106 "Button" 3
  AddControl   /X:106 "Button" 4
  AddControl   /X:106 "Button" 5
  AddControl   /W:108 "LCLComboBox" 1
EndIf

В 32бит всё чётко работает, а в 64бит ModifyDialogs не может поменять ширину LCLComboBox. А у MVV его Autorun_FixWindows.dll меняет ширину этого комбобокса! Может можно что-нибудь «подкрутить»? Или смириться с тем что под 64бит сей комбобокс несгибаем?
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1195

Post (Separately) Posted: Tue Sep 27, 2022 14:46    Post subject: Reply with quote

yozhik wrote:
Или смириться с тем что под 64бит сей комбобокс несгибаем?

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



Joined: 29 Apr 2009
Posts: 2447

Post (Separately) Posted: Tue Sep 27, 2022 15:18    Post subject: Reply with quote

Команда SetHotkeyAction: у меня комбинации с модификатором Alt почему-то не работают. Пробовал и левую, и правую клавишу.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1195

Post (Separately) Posted: Tue Sep 27, 2022 21:30    Post subject: Reply with quote

sa
Да, что-то упустил, похоже альт вообще забыл проверить.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 134

Post (Separately) Posted: Wed Sep 28, 2022 08:22    Post subject: Reply with quote

Loopback
Пара замеченных очепяток в справке:

глава RegDelete
Code:
RegDelete [\K] <ключ> [<параметр>]

слэш в переключателе надо бы перевернуть

глава While...Wend
Code:
While var > 0
  MsgBox(var) # --> 3 --> 2 --> 1
  var = var - 1
Next

вместо Next надо бы WEnd
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1195

Post (Separately) Posted: Wed Sep 28, 2022 20:21    Post subject: Reply with quote

yozhik
Спасибо, поправлю.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 134

Post (Separately) Posted: Fri Sep 30, 2022 00:47    Post subject: Reply with quote

Loopback
Вы AkelPad пользуетесь? Я сделал для него подсветку синтаксиса autorun.cfg.

------

Партия замеченных опечаток и недоумений:

В описании CommandExec
Описание гласит:
CommandExec wrote:
Выполнить пользовательскую команду em_* или установить в панелях заданные пути.

При этом в примерах видим выполнение не только пользовательских команд:
Code:
# открывает диалог настроек
CommandExec cm_Config

и это работает. Хорошо, но чем тогда CommandExec отличается от SendCommand? Только тем, что во 2й внутренние команды TC можно передавать числами? А литерально в обеих — не создаст ли это путаницы? Далее читаем:
CommandExec wrote:
Параметры отправки внутренней команды

и при этом в последующей таблице сведения только о пользовательских em_ командах TC. В русской справке TC эти термины не пересекаются: внутренняя/встроенная — только о cm_, а пользовательская — только о em_.

В описании RunThread
Code:
RunThread <funcname> [<param1> [.. <paramN>]
RunThread(<funcname> [, <param1> [, .. <paramN>]]

В 1й строке не хватает закрывающей ], во 2й закрывающей )

В описаниях строчных ф-ций намёк на то, что вместо casesense требуется подставлять boolean есть только в StrReplace. Может в др., там где casesense используется, тоже стоит добавить?

В описании StrPart
Code:
StrPart(<str>, <delim>, <index> [, <casesense>]

Не хватает закрывающей ).
Code:
sDay = StrPart("Понедельник|Вторник|Среда|Четверг|Пятница|Суббота|Воскресенье" "|", nDay)

Не хватает запятой перед delim.

------

Теперь внимание: очень сильная хотелка. Я давно уже её вынашиваю, и вот настало исполнение времён. Пожалуйста!
Дело в том, что у известного хорошего плагина TWinKey есть два существенных недостатка:
  1. он заброшенный, и с новыми версиями TC всё больше и больше подглючивает;
  2. если TC видит, что он подключен, то блокирует собственную раскраску табов, даже если в TWinKey она не используется.

Поэтому, без лишних слов, вот бы часть самых полезных избранных ф-ций из TWinKey реализовать в субплагинах Autorun. И самой первой сделать эту:
 Специальная обработка клавиши Esc

Она могла бы хорошо поместиться среди ф-ций Tweaks. Мне кажется, что Вам на то, чтобы её сделать, всего несколько минут понадобится. А я бы тогда отключил TWinkey, из-за этой ф-ции его держу преимущественно. Там, конечно, много ещё других хороших, но без них прожить можно, а эту я по нескольку раз на дню использую, привык-с даже.
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 ... 118, 119, 120, 121, 122  Next
Page 119 of 122

 
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