Страница 6 из 243
Добавлено: Ср ноя 03, 2010 03:28
Den_Klimov
Flasher
Читал. И если честно, без всего этого как-то прожил десять лет на Тотале и думаю ещё столько же в принципе смогу обойтись.
Ладно уж. Раз надо значит надо.
Спасибо что вообще хоть реализовали скрытие меню с твоей подсказки.
Добавлено: Ср ноя 03, 2010 03:36
Flasher
[off]
Den_Klimov писал(а):Знаю ты мну не поверишь, с учётом того что мы в теме по F4menu обсуждали, но я сторонник здорового минимализма.
Не поверю уже даже больше, чем в необходимость в большом кол-ве редакторов для одного расширения.
Den_Klimov писал(а):Читал. И если честно, без всего этого как-то прожил десять лет на Тотале и думаю ещё столько же в принципе смогу обойтись.
Это несколько противоречит предыдущему подходу к делу. Ну, как я уже и писал выше, кому надо, сам всё опробует и со временем поймёт, что уже жить без этого не может(как в случае со мной).
Den_Klimov писал(а):Спасибо что вообще хоть реализовали скрытие меню с твоей подсказки.
Да там вся тема зародилась по моей идее и большинство фич также.
[/off]
Ну, ок. Сворачиваем оффтопик.
Добавлено: Ср ноя 03, 2010 10:10
Loopback
Den_Klimov писал(а):Можно ли использовать Autorun HideMenu (текущая версия 1.1.5) без TCFS2, который не использую. Достаточно ли для этого одного Autorun-а?
Можно - с оговорками. HideMenu регистрирует 4 команды. Их можно выполнить, послав окну тотала.
Если нужно, скажем, скрыть меню только один раз при запуске тотала, можно обойтись самим Autorun-ом. Достаточно добавить строку в конце конфигурации (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 - отличная утилита для тех, кто хочет максимально увеличить размер окна тотала. Но ведь не всем это нужно, верно?

Добавлено: Ср ноя 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, например, для переключения видимости строки меню:
Добавлено: Ср ноя 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 писал(а):А чтобы записать пустое значение, а не удалять ключ, можно указывать "" как значение этого параметра.
А разве под первым предложением "без текста .. использовать" не это подразумевалось?