TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Блин, 1050700 - это значение дескриптора окна, которое у меня существовало на момент теста, это не более, чем пример. :)

В Readme написано, что дескриптор надо передавать в lParam, остальное - дело техники.

У меня, когда фокус в панели, в заголовке появляется дескриптор панели, когда фокус в комстроке - дескриптор Edit-a в комбобоксе комстроки, на кнопке в диалоге - дескриптор этой кнопки...


До кучи выложу обновлённую TCFS2:

TCFS2 Build 550:
+ теперь файлов конфигурации два, TCFS2.ini и TCFS2.Core.ini
+ findwnd умеет пропускать невидимые окна

Смысл двух конфигов в том, что TCFS2.Core.ini не надо синхронизировать при обновлении TCFS2, можно просто заменять (желательно все стандартные функции из TCFS2.ini убрать, они будут браться из TCFS2.Core.ini). Надеюсь, такая схема не сильно замедлит работу. :)

Ну а поиск активного диалогового окна теперь выглядит так:

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

TCFS2 /ef delay(2000) /ei "settext(`window: ` findwnd(,,,,2))"
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Я понял, что дескриптор. Но ты предлагаешь как твой код тестировать с неведомым дескриптором?
MVV писал(а):+ findwnd умеет пропускать невидимые окна
Вот этого и касалось. >
Flasher писал(а):Правда, хотелось, чтобы определение активного окна/контрола было в самой TCFS2.

Да, с ini-файлами теперь заморочек больше. Получается, нужно все одноимённые команды переименовывать и переписывать 100500 кнопок и юзеркоманд! :shock: :shock: :shock:
MVV писал(а):Ну а поиск активного диалогового окна теперь выглядит так:
Подставляю tcm(4003)/tcm(2912)/tcm(905) - тихо. :?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Но ты предлагаешь как твой код тестировать с неведомым дескриптором?
Нет, тебе показалось. Я предлагаю прописать в пример ведомый дескриптор. :D
Вот этого и касалось.
Поиск окон возможен напрямую из TCFS2, поэтому он там и сделан, а получение фокуса - нет.
Да, с ini-файлами теперь заморочек больше. Получается, нужно все одноимённые команды переименовывать и переписывать 100500 кнопок и юзеркоманд.
Не врублюсь, зачем переименовывать и переписывать? Если ты патчил стандартные, будут вызываться твои патченые.
Можешь тупо оставить всё как есть, TCFS2 не обидится, что файла TCFS2.Core.ini нет.
А можешь один раз убрать из TCFS2.ini команды, которые есть в TCFS2.Core.ini, и больше не париться при обновлениях TCFS2, просто перезаписывая библиотеку TCFS2.Core.ini.
Подставляю tcm(4003)/tcm(2912)/tcm(905) - тихо.
А должно быть громко?
После выполнения первой или второй активным окном остаётся окно тотала, после запуска примера в заголовке главного окна отображается его же дескриптор. А после выполнения третьей пример уже отображает дескриптор диалога копирования.

Вот чуть более наглядный (и весёлый) пример, при запуске меняет заголовок найденного активного окна:
TCFS2 /ef delay(2000) /ei "settext(`i am active!`, findwnd(,,,,2))"
После нескольких запусков имею такую картину:
Изображение
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Нет, тебе показалось. Я предлагаю прописать в пример ведомый дескриптор.
Что-то не наблюдаю. Такие примеры только с толку сбивают. Если лень писать tcm, то пиши хотя бы схематично с [<>].
MVV писал(а):Если ты патчил стандартные, будут вызываться твои патченые.
Так TCFS2.ini остаётся в приоритете? Тогда ОК.
MVV писал(а):Можешь тупо оставить всё как есть, TCFS2 не обидится, что файла TCFS2.Core.ini нет.
Вот с этого надо было начинать. :) И в ReadMe очень не помешало бы.
MVV писал(а):А можешь один раз убрать из TCFS2.ini команды, которые есть в TCFS2.Core.ini, и больше не париться при обновлениях TCFS2, просто перезаписывая библиотеку TCFS2.Core.ini.
Так одноимёнки патченные всё равно останутся, пока все вызовы с ними не поправлю. Получается, в одном ini будет лишнее.
MVV писал(а):А должно быть громко?
А, я не туда смотрю. В ТС-то у меня заголовок скрыт. Сейчас увидел. А вот при tcm(905,1) меняется у главного окна почему-то. :?

[cut="После нескольких запусков имею такую картину:"]У меня браузер (без AdBlock) воспринимает этот хост как рекламное содержимое. Вижу пустоту. Взял бы что-то получше.[/cut]
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Так TCFS2.ini остаётся в приоритете? Тогда ОК.
Flasher писал(а):Вот с этого надо было начинать. :) И в ReadMe очень не помешало бы.
Ну RTFM же. :D
Так одноимёнки патченные всё равно останутся, пока все вызовы с ними не поправлю. Получается, в одном ini будет лишнее.
Если много чего менял, то конечно оставляй в пользовательском конфиге. Хотя это усложняет обмен командами с другими.
А вот при tcm(905,1) меняется у главного окна почему-то.
Опять у тебя всё не так. :) У меня почему-то работает правильно, заголовок меняется у правильного окна:

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

TCFS2 /ef tcm(905,1) delay(2000) /ei "settext(`i am active!`, findwnd(,,,,2))"
Возможно, дело в том, что сообщение посылается в другом потоке. Можно попробовать использовать GetGUIThreadInfo вместо GetFocus, но не факт, что это что-то даст.
У меня браузер (без AdBlock) воспринимает этот хост как рекламное содержимое.
Странный у тебя браузер, прямую ссылку на картинку произвольного размера воспринимать как рекламу (хотя, возможно, это из-за ad- в имени хоста).
Выкладывал я на rgho.st, других хостов и не знаю, в которых можно давать прямые ссылки на картинки, а не на промежуточные страницы с кучей рекламы.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Ну RTFM же.
Смотрел. Там вроде про удаление не написано.
MVV писал(а):Хотя это усложняет обмен командами с другими.
Так это давно надо было делать, когда команд толком не накопилось. Даже после запроса прошло с полгода.
MVV писал(а):Опять у тебя всё не так.
Так это не у меня не так, это у тебя не так. :) Я то твой пример тестирую. Там ты запятую не поставил, а сейчас поставил. Теперь работает.
MVV писал(а):Выкладывал я на rgho.st
meson.ad-l.ink - это rgho.st? Зашибись. Ещё и ad-file.com до кучи...
MVV писал(а):других хостов и не знаю, в которых можно давать прямые ссылки на картинки, а не на промежуточные страницы с кучей рекламы.
С любого хоста можно брать прямую страницу (пусть и не всегда сервисно), не выдумывай. Я пользуюсь redload.ru (см. нижние 2 поля после загрузки). На savepic.ru тоже есть, да полно вариантов.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Смотрел. Там вроде про удаление не написано.
Но и про то, что без него всё сломается, тоже не написано. :)
Так это давно надо было делать, когда команд толком не накопилось. Даже после запроса прошло с полгода.
Я даже отвечал на тот запрос. Но созревал долго (хоть и парюсь при синхронизации, т.к. тотал до сих пор не научился хранить бэкапы во временной папке и не даёт нормально синхронизировать файл в защищённой от записи папке), а так, конечно, такую штуку куда удобнее делать на ранних этапах.
Если заметишь, что быстродействие упало - дай знать, самому интересно, будет ли видна разница. Это в случае, если решишься поубирать дубли из пользовательского конфига. :)
meson.ad-l.ink - это rgho.st? Зашибись. Ещё и ad-file.com до кучи...
Да, rghost.ru сильно изменился с тех пор, как был переименован...
С любого хоста можно брать прямую страницу (пусть и не всегда сервисно), не выдумывай. Я пользуюсь redload.ru (см. нижние 2 поля после загрузки).
Прямые ссылки можно получить далеко не всегда, многие хостинги хотят денег и/или славы и выдают динамические ссылки, которые валидны очень ограниченное время (порой и с ограничением по адресу).
А как долго твой redload.ru хранит картинки? На сайте об этом ни слова...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Если заметишь, что быстродействие упало - дай знать, самому интересно, будет ли видна разница. Это в случае, если решишься поубирать дубли из пользовательского конфига.
Дубли скорее уберу. Прекрасно осознаю общественную пользу, просто пришла она несвоевременно. И тестирование скорее будет небыстрым. По ходу вызова разных команд в разные дни придёт понимание, т.ч. с получением результатов явная неопределёнка, к тому же восприятие сотых секунды - дело тонкое.

[cut="Про обменники:"]
MVV писал(а):выдают динамические ссылки
Не знаю про такие и знать не хочу.
MVV писал(а):А как долго твой redload.ru хранит картинки?
Сколь угодно. Пример 4-хлетней давности. См. выше второй обменник, там вся инфа на виду. До кучи 3-й: pixic.ru.[/cut]
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

с получением результатов явная неопределёнка, к тому же восприятие сотых секунды - дело тонкое
Меня вполне устроит, если с виду ничего не изменится. Главное, чтобы не было сильно ощутимого замедления (но оно скорее всего будет заметно только при организации сильно плотных циклов).

А про обменник - убедил, спасибо.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Так что, поиск активного окна после tcm(905,1) все-таки не срабатывает? Как это воспроизвести?
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

MVV

У меня срабатывает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV
Внимательней перечитай серёдку поста.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):Внимательней перечитай серёдку поста.
Мог бы и более дружественно сказать, если я что-то пропустил.
И у меня всё так, внимательнее вглядись в команды. В первом случае я вывожу дескриптор активного диалога в шапке главного окна, а во втором (который я назвал более наглядным и весёлым) - пишу "i am active!" в шапке активного диалога. :)

В общем, главное, что работает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Перед тестами человек вглядывается не в команды, а в описание:
MVV писал(а):Ну а поиск активного диалогового окна теперь выглядит так:
Связать это с какой-то шапкой весьма затруднительно. :)

P.S.: Серёдка дружественней, чем середина. :wink:
MVV писал(а):В общем, главное, что работает.
Это точно.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

В том примере главное было - показать findwnd(,,,,2), а во что завернуть - дело вкуса, можно отображать в шапке тотала (для отладки очень удобно писать в шапку тотала через settext), можно ещё что-то делать с дескриптором. :)
Ответить