Страница 6 из 243

Добавлено: Ср ноя 03, 2010 03:28
Den_Klimov
Flasher
Читал. И если честно, без всего этого как-то прожил десять лет на Тотале и думаю ещё столько же в принципе смогу обойтись. :)

Ладно уж. Раз надо значит надо.
Спасибо что вообще хоть реализовали скрытие меню с твоей подсказки.

Добавлено: Ср ноя 03, 2010 03:36
Flasher
[off]
Den_Klimov писал(а):Знаю ты мну не поверишь, с учётом того что мы в теме по F4menu обсуждали, но я сторонник здорового минимализма. :)
Не поверю уже даже больше, чем в необходимость в большом кол-ве редакторов для одного расширения. :D
Den_Klimov писал(а):Читал. И если честно, без всего этого как-то прожил десять лет на Тотале и думаю ещё столько же в принципе смогу обойтись.
Это несколько противоречит предыдущему подходу к делу. Ну, как я уже и писал выше, кому надо, сам всё опробует и со временем поймёт, что уже жить без этого не может(как в случае со мной). :wink:
Den_Klimov писал(а):Спасибо что вообще хоть реализовали скрытие меню с твоей подсказки.
Да там вся тема зародилась по моей идее и большинство фич также. :wink:
[/off]
Ну, ок. Сворачиваем оффтопик.

Добавлено: Ср ноя 03, 2010 10:10
Loopback
Den_Klimov писал(а):Можно ли использовать Autorun HideMenu (текущая версия 1.1.5) без TCFS2, который не использую. Достаточно ли для этого одного Autorun-а?
Можно - с оговорками. HideMenu регистрирует 4 команды. Их можно выполнить, послав окну тотала.
Если нужно, скажем, скрыть меню только один раз при запуске тотала, можно обойтись самим Autorun-ом. Достаточно добавить строку в конце конфигурации (65538 - команда скрытия меню по-умолчанию):

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

SendCommand 65538
Если нужно переключать динамически, то можно пользоваться скриптами. Например, в простейшем варианте на Autoit:

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

DllCall("user32.dll", "int", "SendMessage", "hwnd", _TCHGetActiveInstance(), "int", 0x400 + 51, "wparam", 65538, "lparam", 0)
Func _TCHGetActiveInstance()
    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
Или на VBS со Script Helper (не проверял):

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

Option Explicit
Dim TCS
Set TCS = CreateObject("TCScript.Helper")
TCS.SendCommand 65538
Set TCS = Nothing
Flasher писал(а):Честно говоря, не использовать TCFS2 с учётом всех нынешних его возможностей помимо основных(быстрый показ-убор комплекта оконных компонентов ТС), ИМХО, просто преступление для продвинутого пользователя ТС.
TCFS2 - отличная утилита для тех, кто хочет максимально увеличить размер окна тотала. Но ведь не всем это нужно, верно? :wink:

Добавлено: Ср ноя 03, 2010 10:38
MVV
Можно использовать кучу утилит для отправки тоталу команд, например, TCMC - ею тоже можно вызывать команды HideMenu.

Добавлено: Ср ноя 03, 2010 10:49
Flasher
Loopback писал(а):HideMenu регистрирует 4 команды.
Аа, вот в чём дело. Я-то думал, что это только ТС подвластно, иначе бы никакие скрипты так не работали. Тогда беру свой первый спич назад. :) Хорошая новость и для меня.
Loopback писал(а):TCFS2 - отличная утилита для тех, кто хочет максимально увеличить размер окна тотала. Но ведь не всем это нужно, верно?
Первое предложение - неверно, второе - да.

Добавлено: Ср ноя 03, 2010 10:56
MVV
Flasher писал(а):
Loopback писал(а):HideMenu регистрирует 4 команды.
Аа, вот в чём дело. Я-то думал, что это только ТС подвластно, иначе бы никакие скрипты так не работали.
Ну не то чтобы регистрирует - в тотале регистрация не предусмотрена. Она просто перехватывает аналогичные сообщения, но с другими параметрами, и не передаёт оконной процедуре самого тотала. Поэтому можно любыми внешними утилитами выполнять и эти команды. Но, так как теоретически возможны коллизии, номера сделаны настраиваемыми.

Кстати о перехвате - на днях обнаружил, что с программами, написанными на Delphi, не работают стандартная системная функция сабклассинга SetWindowSubclass - программа просто рушится (причем, даже пустая форма, скомпилированная на Delphi 3 - сам проверял). Причина для меня абсолютно неясна. Поэтому остается только старый жесткий метод, при котором снять сабклассинг весьма проблематично (если кто-то ещё сабклассил окно после нас, мы убиваем все сабклассы, начиная с нашего). Поэтому HideMenu загружается однажды и остается в памяти до закрытия тотала - Autorun её выгрузить не в состоянии.

Добавлено: Чт ноя 04, 2010 02:21
Den_Klimov
Flasher
Это несколько противоречит предыдущему подходу к делу. Ну, как я уже и писал выше, кому надо, сам всё опробует и со временем поймёт, что уже жить без этого не может(как в случае со мной).
Никакого противоречия нет.
Просто я не считаю что минимализм должен быть в ущерб важному удобству и функциональности.

Loopback
MVV
Спасибо. Радостная новость.
MVV писал(а):Можно использовать кучу утилит для отправки тоталу команд, например, TCMC - ею тоже можно вызывать команды HideMenu.
Этот вариант мне больше всего нравится. Опробую. Если не затруднит, не приведёшь пример строк с командами для искомой задачи плиз?

Добавлено: Чт ноя 04, 2010 12:25
MVV
Den_Klimov писал(а):
MVV писал(а):Можно использовать кучу утилит для отправки тоталу команд, например, TCMC - ею тоже можно вызывать команды HideMenu.
Этот вариант мне больше всего нравится. Опробую. Если не затруднит, не приведёшь пример строк с командами для искомой задачи плиз?
Дык проще некуда. Если ты не менял настроек в файле Autorun_HideMenu.ini (или он отсутствует), то номера команд берешь из Readme к Autorun_HideMenu. А дальше просто указываешь номер в параметре TCMC, например, для переключения видимости строки меню:

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

TCMC 65539

Добавлено: Ср ноя 17, 2010 13:40
sa
Столкнулся с необходимостью при запуске ТК удалить несколько ключей из wincmd.ini. Вопрос к автору и всем заинтересованным. Нет ли смысла (и возможности, конечно) добавить в Autorun команду IniDelete для этой цели? А может даже и для удаления целой секции, если название ключа не указано (как в TCWSHelp, например).

Добавлено: Ср ноя 17, 2010 14:25
MVV
А команду IniWrite без текста пробовал использовать? Почему-то её параметр <текст> задан в квадратных скобках...

Добавлено: Ср ноя 17, 2010 14:40
sa
MVV писал(а):А команду IniWrite без текста пробовал использовать?
В этом случае сам ключ остаётся, а после знака равенства - просто пусто.

Добавлено: Ср ноя 17, 2010 15:45
Loopback
sa писал(а): Нет ли смысла (и возможности, конечно) добавить в Autorun команду IniDelete для этой цели?
Думаю, вполне может пригодиться, просто мне до сих пор такая была не нужна. Как время появится - добавлю.

Добавлено: Ср ноя 17, 2010 15:49
sa
Loopback писал(а):Как время появится - добавлю.
Большое спасибо!

Добавлено: Ср ноя 17, 2010 16:49
MVV
Думаю, можно модифицировать команду IniWrite, чтобы она удаляла ключ, если параметр <текст> не задан. А чтобы записать пустое значение, а не удалять ключ, можно указывать "" как значение этого параметра.

Кстати, теперь каждый может написать плагин для Autorun и добавить нужные команды. :)

Добавлено: Ср ноя 17, 2010 17:08
Flasher
MVV писал(а):А чтобы записать пустое значение, а не удалять ключ, можно указывать "" как значение этого параметра.
А разве под первым предложением "без текста .. использовать" не это подразумевалось?