TWinKey - шорткаты, табы, диски и всякая всячина
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
HEXFIX
Чтобы получить однозначный ответ, надо задать точный и полный вопрос. Сейчас мало данных. Для начала разбираемся с шаблонами автопереключения на конкретные схемы. Секцию [AutoView] файла TWinKey.ini — в студию. И заодно проверяем, выставлены ли галки у всех визуальных схем на соответствующей странице и не отменяет ли вышележащая в списке схема действие последующей.
Чтобы получить однозначный ответ, надо задать точный и полный вопрос. Сейчас мало данных. Для начала разбираемся с шаблонами автопереключения на конкретные схемы. Секцию [AutoView] файла TWinKey.ini — в студию. И заодно проверяем, выставлены ли галки у всех визуальных схем на соответствующей странице и не отменяет ли вышележащая в списке схема действие последующей.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Ну может какую другую программу можно найти.ask-rus писал(а):cm_ и em_ команды в них не установишь.
Но в любом случае - я сам не буду сажать кнопки в заголовок окна. В Windows нет законного способа это сделать, а возиться с незаконными выйдет себе дороже.
Мне смутно помнится, что для PowerPro были какие-то скрипты, сажающие туда кнопки, надо бы у Вахмурки уточнить, он спец по PowerPro.
Avada
Вот, пожалуйста:

Добавлено спустя 9 минут 7 секунд:
Кстати, когда-то давно в этом топике писал про жуткие тормоза плагина при заходе в папку с большим количеством файлов. Это если используешь контентные плагины... Так вот, убрал я навороченную цветовую схему - никаких тормозов нет.
Вот, пожалуйста:
Код: Выделить всё
[AutoView]
Книги=?*Книги*
Музыка=?*Музыка*
По умолчанию=?*.*
Изображения=?*Изображения*
Торренты=?*Торренты*Аааа... Теперь понятно! Визуальную схему "По умолчанию" надо ставить последней. Спасибо!и не отменяет ли вышележащая в списке схема действие последующей.
Добавлено спустя 9 минут 7 секунд:
Кстати, когда-то давно в этом топике писал про жуткие тормоза плагина при заходе в папку с большим количеством файлов. Это если используешь контентные плагины... Так вот, убрал я навороченную цветовую схему - никаких тормозов нет.
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Я тоже хотел бы уточнить, куда надо "сажать" кнопки. Что такое "заголовок окна"? Это который "caption"? Если да, то "посадить" туда панель или меню - как два байта об асфальт. С cm_-командами тоже проблем не возникнет. А вот em_-команды... Можно, но сложнее. Открыть usercmd.ini, по названию команды найти раздел, считать из него ключи cmd и param и выполнить. Никогда этим не занимался, но если нужно, могу нацарапать.Мне смутно помнится, что для PowerPro были какие-то скрипты, сажающие туда кнопки, надо бы у Вахмурки уточнить
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Да, совершенно верно.Вахмурка писал(а):Что такое "заголовок окна"? Это который "caption"?
Никаких сложностей. Механизм отработан, давно есть програмы, скрипты, посылающие cm_ и em_ команды в тотал.Вахмурка писал(а):А вот em_-команды... Можно, но сложнее.
И в любом случае не надо ничего читать из usercmd.ini. Просто в случае cm_ команды надо в окно тотала послать WM_USER+51 а в случае em_ надо послать WM_COPYDATA. Все остальное тотал сделает сам.
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
В PowerPro это выглядит так:где 523 - номер внутренней команды. По поводу COPYDATA сказано следующее:
Код: Выделить всё
win.sendmessage(hwnd, 0x400+51, 523, 0)Буду признателен, если программеры подскажут, что надо указывать вместо dwdata и lpdata.sendcopydata(cl, dword, string) sends wm_copydata first window matching cl, with dwdata=dword and lpdata=string
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Я за портабельность, посему PowerPro мне не подходит, уже много где говорил об этом.
1. Мерцание;
2. Скрытие процесса на Панели задач при прямоугольном выделении;
3. Смещение вниз на пиксель компонентов окна TC;
4. Список дисков без отжатия Alt;
5. "Home" и "End" в Список дисков.
Обо всём этом говорилось.
Искать не буду, потому что мне эти кнопки не как кровь из носу нужны. Есть кнопки - хорошо, нет кнопок - бог с ними. А что касается Твинков, то для меня важны фиксы следующих проблем:VadiMGP писал(а):Ну может какую другую программу можно найти.
1. Мерцание;
2. Скрытие процесса на Панели задач при прямоугольном выделении;
3. Смещение вниз на пиксель компонентов окна TC;
4. Список дисков без отжатия Alt;
5. "Home" и "End" в Список дисков.
Обо всём этом говорилось.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Я считаю, что string должен содержать текст em_ команды (в кодировке UTF8), а dword - 0x00004d45
Добавлено спустя 6 минут 12 секунд:
Добавлено спустя 6 минут 12 секунд:
Я думаю, что Вахмурка не видит эту структуру. PowerPro сам создает её. Потому он и требует только строку и dwDataMVV писал(а):это третье поле структуры, передаваемой WM_COPYDATA
Вижу, в упомянутой им функции нет такого параметра. Потому я и включил \0 в строку. 
А кодировка там, мне кажется, должна быть Win-1251. А если UTF-8, то скорее всего с BOM, по аналогии с сообщением для cd.
Вот с командой cd у меня в своё время были проблемы, когда я не включал нулевой байт в размер - когда стало ясно, в чём дело, Гислер сказал, что тотал не смотрит на длину буфера, а ожидает нулевого байта в конце, поэтому этот байт обязательно нужно включать в пересылаемый блок.
А кодировка там, мне кажется, должна быть Win-1251. А если UTF-8, то скорее всего с BOM, по аналогии с сообщением для cd.
Вот с командой cd у меня в своё время были проблемы, когда я не включал нулевой байт в размер - когда стало ясно, в чём дело, Гислер сказал, что тотал не смотрит на длину буфера, а ожидает нулевого байта в конце, поэтому этот байт обязательно нужно включать в пересылаемый блок.
В принципе можно и 1251, но тогда если wincmd.ini содержит текст более, чем на двух языках (как у меня, например), то работать будут только английский и русский. UTF8 дает решение для любого количества языков.MVV писал(а):А кодировка там, мне кажется, должна быть Win-1251.
И да, еще один \0 там в конце действительно нужен.
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
2VadiMGP, MVV
Спасибо за информацию. Сейчас у меня много работы, но как-нибудь надо поиграться. Не пользы ради, а саморазвития для.
Спасибо за информацию. Сейчас у меня много работы, но как-нибудь надо поиграться. Не пользы ради, а саморазвития для.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Здесь есть более-менее пример на Си. Очень неоптимизированный и без UTF-8, но пример.
Ну как, нуля там хватило бы и одного, главное - учесть его при подсчете числа символов строки. В случае, когда длину вычисляют без нас, нужно указывать в конце строки \0.И да, еще один \0 там в конце действительно нужен.
Ну, UTF8 это всего одна строчка. У меня вот такMVV писал(а):Здесь есть более-менее пример на Си. Очень неоптимизированный и без UTF-8, но пример.
Код: Выделить всё
BYTE utf8name[1024];
int tlen;
tlen=wcstombs((char*)utf8name,CmdName,sizeof(utf8name));
if (tlen!=-1)
{
cds.dwData = 'E' + 256 * 'M';
cds.cbData = tlen+1;
cds.lpData = (PVOID)utf8name;
SendMessage(ghTC, WM_COPYDATA, 1, (LPARAM)&cds);
}