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 

Кнопка вкл\выкл "внутренние ассоциации"
Goto page Previous  1, 2, 3 ... 8, 9, 10, 11  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Sun Apr 28, 2013 18:40    Post subject: AHK_L переключение ассоциаций без перезапуска TC Reply with quote

AHK_L переключение ассоциаций без перезапуска TC:
Code:
#SingleInstance off
SetBatchLines, -1
SetKeyDelay, -1
SetWinDelay, -1

IniRead, RedirectAssociations, % COMMANDER_INI, Associations, RedirectSection, 0
Transform, INI, Deref, % (RedirectAssociations ? RedirectAssociations : COMMANDER_INI)
IniRead, Associations, % INI, Associations
If StrLen(Associations) < 65531 {
  IniRead, _d, % INI, % (Asc(Associations) ? "" : "-") "Associations"
  IniWrite, % _d, % INI, % (Asc(Associations) ? "-" : "") "Associations"
  IniDelete, % INI, % (Asc(Associations) ? "" : "-") "Associations"
  PostMessage, 1075, 519, 0,, ahk_class TTOTAL_CMD
  WinWait, ahk_class TDlgCustomColors
  If !ErrorLevel
    ControlClick, TButton2,,,, 2
} Else, MsgBox, Error: associations reached 64Kb section limit!


Last edited by mf-zl on Mon Apr 29, 2013 03:46; edited 7 times in total
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sun Apr 28, 2013 18:47    Post subject: Reply with quote

Обычно прохожу мимо, когда требуется установка самого AutoHotkey.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Sun Apr 28, 2013 18:50    Post subject: Reply with quote

ask-rus
дело конечно ваше, но один раз скачать и установить мощный скриптовый язык - не такая уже и проблема...

ps добавил в шапку exe
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Apr 28, 2013 19:37    Post subject: Reply with quote

ask-rus wrote:
требуется установка самого AutoHotkey
Не требуется, как и в отношении AutoIt.

P.S. Не вижу смысла плодить темы.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Sun Apr 28, 2013 20:06    Post subject: Reply with quote

mf-zl
В частных случаях скрипт, наверное, выполняет свою функцию. Но из-за нелепых ограничений Тотала в отношении секции ассоциаций - в целом скрипт неработоспособный.
Во-первых, последние четыре строчки - явно лишние, при вызове диалогового окна и нажатия на ОК - можно потерять часть настроенных ассоциаций.
Во-вторых, даже без этих строк скрипт режет ассоциации (пока не пойму причины, видимо, в каких ещё строках ошибки...).

Лучше всего бэкапить ассоциации, а потом восстанавливать их. (или вообще сделать редирект секции [Associations] в отдельный файл, и при отключении - менять этот файл местами с файлом-пустышкой).

ask-rus wrote:
Обычно прохожу мимо, когда требуется установка самого AutoHotkey.

... и при этом сам пишешь, что используешь скрипты AutoIt...
Где логика?
А при наличии в Тотале внутренних ассоциаций - устанавливать в систему фактически ничего не надо.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Sun Apr 28, 2013 21:06    Post subject: Reply with quote

LonerD, что же у тебя там такого в конфигах на over64k то ? Shocked

у меня, например, весь конфиг, включающий в себя:
wincmd.ini все команды описанные в справке
custom fields 10 шт
dirmenu 70 пунктов
searches на 979 расширений
сolorfilters 28
associations 21 шт
usercmd 40 команд

- занимает 37,8k

скинь конфиг для тэсту, что у тебя там обрезает Rolling Eyes
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sun Apr 28, 2013 22:04    Post subject: Reply with quote

Объединено с уже существовавшей темой.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Sun Apr 28, 2013 22:38    Post subject: Reply with quote

mf-zl
Quote:
что же у тебя там такого в конфигах на over64k то ?

Associations - 142 секций (99.6 Кб)
DirMenu - 207 пунктов
CustomFields - 41
OverwriteCustomField - 26
HintsCustomField - 26
Extensions - ок. 250 расширений
Searches - 185 секций (70 Кб) - не только расширения
Shortcuts - ок. 500 хоткеев
User - не использую (всё через em_ )
Разрешения экрана - 40 секций
Rename - 36 шаблонов
SyncOptions - 12 шаблонов
Colors - ок. 40 (пока не готовы)
и остального понемножку.

Общий размер wincmd.ini + файлы-редиректы - около 380 Кб (всё разнесено редиректами по 14 файлам).
Главное меню - более 2100 пунктов, 170 Кб (да ещё и на трёх языках, рус и укр уже почти сделаны, а английский - в процессе, пока только схематично).
Пользовательские команды - более 2300 штук, 450 Кб
Панели инструментов - пока в процессе осмысления.


Quote:
для тэсту, что у тебя там обрезает

В личку.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Mon Apr 29, 2013 00:52    Post subject: Reply with quote

действительно обрезает, но ровно настолько, насколько это делает и сам TC Sad
IniRead из инишника первые 65533 символов читает
Code:
IniRead, d, associations.ini, Associations
MsgBox, % StrLen(d)
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Mon Apr 29, 2013 02:16    Post subject: Reply with quote

mf-zl wrote:
действительно обрезает, но ровно настолько, насколько это делает и сам TC Sad
IniRead из инишника первые 65533 символов читает

Жах. Хоть бы в справке упомянули, что сделали такие ограничения.
Кстати, AHK прочитать может даже те ключи, которые находятся в конце ini-файла, как и Тотал. (то есть видятся не только первые символы, а весь файл!).

А обрезает Тотал и AHK по-разному, причём оба странным образом.
Ограничение на количество символов? Тогда откуда цифра 65533 и почему обрезается каждый раз по разному, размер итогового файла варьируется от 66321 до 66340 Кб (даже если отбросить название секции - всё равно получается больше, чем 65533).

Ещё можно было бы предположить, что это какие-то ограничения формата ini... Но ведь с секцией [Searches] Тотал работает корректно, ничего не обрезает при добавлении/удалении ключей этой секции (AHK обкорнал и эту секцию до 66340. Причём размер секции, видимо, неограничен - в сборке TC Image он достигает 250 Кб.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α


Last edited by LonerD on Mon Apr 29, 2013 02:31; edited 1 time in total
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Mon Apr 29, 2013 02:26    Post subject: Reply with quote

Quote:
Жах. Хоть бы в справке упомянули, что сделали такие ограничения.

LonerD тебе ведь сам ghisler ответил что есть ограничения на размер секции ini файла:
Quote:
According to Microsoft, each section in an ini file is limited to 64 kBytes: http://msdn.microsoft.com/en-us/library/windows/desktop/ms725500%28v=vs.85%29.aspx


p.s. Поставил ограничение в скрипте на размер секции
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Mon Apr 29, 2013 02:46    Post subject: Reply with quote

mf-zl wrote:
сам ghisler ответил что есть ограничения на размер секции ini файла

Он не пояснил - почему размер обрезанных Тоталом секций почти на 800 символов больше этого ограничения и почему секция Searches в Тотале не обрезается.

Neutral Может, 65533 - это не первые символы инишника, а первые символы значений ключей ini-файла?
Но нет - на msdn говорится, что это имена ключей и их значения:
The new key names and associated values that are to be written to the named section. This string is limited to 65,535 bytes.

В общем, пока не удаётся осмыслить это ограничение.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α


Last edited by LonerD on Mon Apr 29, 2013 04:01; edited 1 time in total
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Mon Apr 29, 2013 03:11    Post subject: Reply with quote

LonerD, насколько я понял имеется ввиду объём содержимого секции в байтах, а не файла.
Плюс стоит учитывать окончание строки и кодировку.

Для ASCII, windows-1251, koi-8, dos-866 - один символ = 1 байт
Unicode - один символ = 2 байта
Utf-8 - один символ от 1 до 6 байтов (латинские символы и стандартные знаки = 1 байт, русские буквы = 2 байта, разные иероглифы могут быть до 6 байтов длиной).


Отсюда и разница в размере выходного файла. Idea
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Mon Apr 29, 2013 04:12    Post subject: Reply with quote

Quote:
стоит учитывать окончание строки

Ах вот оно что! Very Happy
Проверил - точно, оно!
Окончания строк ведь тоже занимаю место в файле, а учитываются только 65533 символов. Idea
А я столько времени не мог понять почему у меня обрезанный файл получается большего размера, чем ограничения Rolling Eyes .
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Mon Apr 29, 2013 08:44    Post subject: Reply with quote

LonerD wrote:
... и при этом сам пишешь, что используешь скрипты AutoIt...

Где? Surprised Скомпилированные использую, например, TC Multi Comment Edit. Опять же, когда-то стояли в системе AutoIt и AutoHotkey, теперь нет. Носить с собой целый скриптовый язык не хочется.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
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 ... 8, 9, 10, 11  Next
Page 9 of 11

 
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