Страница 122 из 130
Добавлено: Ср янв 11, 2017 00:10
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))"
Добавлено: Ср янв 11, 2017 00:38
Flasher
Я понял, что дескриптор. Но ты предлагаешь как твой код тестировать с неведомым дескриптором?
MVV писал(а):+ findwnd умеет пропускать невидимые окна
Вот этого и касалось. >
Flasher писал(а):Правда, хотелось, чтобы определение активного окна/контрола было в самой TCFS2.
Да, с ini-файлами теперь заморочек больше. Получается, нужно все одноимённые команды переименовывать и переписывать 100500 кнопок и юзеркоманд!
MVV писал(а):Ну а поиск активного диалогового окна теперь выглядит так:
Подставляю tcm(4003)/tcm(2912)/tcm(905) - тихо.

Добавлено: Ср янв 11, 2017 00:49
MVV
Но ты предлагаешь как твой код тестировать с неведомым дескриптором?
Нет, тебе показалось. Я предлагаю прописать в пример ведомый дескриптор.
Вот этого и касалось.
Поиск окон возможен напрямую из 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))"
После нескольких запусков имею такую картину:

Добавлено: Ср янв 11, 2017 01:14
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]
Добавлено: Ср янв 11, 2017 10:25
MVV
Так TCFS2.ini остаётся в приоритете? Тогда ОК.
Flasher писал(а):Вот с этого надо было начинать.

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

У меня почему-то работает правильно, заголовок меняется у правильного окна:
Код: Выделить всё
TCFS2 /ef tcm(905,1) delay(2000) /ei "settext(`i am active!`, findwnd(,,,,2))"
Возможно, дело в том, что сообщение посылается в другом потоке. Можно попробовать использовать
GetGUIThreadInfo вместо
GetFocus, но не факт, что это что-то даст.
У меня браузер (без AdBlock) воспринимает этот хост как рекламное содержимое.
Странный у тебя браузер, прямую ссылку на картинку произвольного размера воспринимать как рекламу (хотя, возможно, это из-за
ad- в имени хоста).
Выкладывал я на rgho.st, других хостов и не знаю, в которых можно давать прямые ссылки на картинки, а не на промежуточные страницы с кучей рекламы.
Добавлено: Ср янв 11, 2017 10:47
Flasher
MVV писал(а):Ну RTFM же.
Смотрел. Там вроде про удаление не написано.
MVV писал(а):Хотя это усложняет обмен командами с другими.
Так это давно надо было делать, когда команд толком не накопилось. Даже после
запроса прошло с полгода.
MVV писал(а):Опять у тебя всё не так.
Так это не у меня не так, это у тебя не так.

Я то твой пример тестирую.
Там ты запятую не поставил, а сейчас поставил. Теперь работает.
MVV писал(а):Выкладывал я на rgho.st
m
eson.ad-l.ink - это
rgho.st? Зашибись. Ещё и
ad-file.com до кучи...
MVV писал(а):других хостов и не знаю, в которых можно давать прямые ссылки на картинки, а не на промежуточные страницы с кучей рекламы.
С любого хоста можно брать прямую страницу (пусть и не всегда сервисно), не выдумывай. Я пользуюсь redload.ru (см. нижние 2 поля после загрузки). На savepic.ru тоже есть, да полно вариантов.
Добавлено: Ср янв 11, 2017 11:09
MVV
Смотрел. Там вроде про удаление не написано.
Но и про то, что без него всё сломается, тоже не написано.
Так это давно надо было делать, когда команд толком не накопилось. Даже после запроса прошло с полгода.
Я даже
отвечал на тот запрос. Но созревал долго (хоть и парюсь при синхронизации, т.к. тотал до сих пор не научился хранить бэкапы во временной папке и не даёт нормально синхронизировать файл в защищённой от записи папке), а так, конечно, такую штуку куда удобнее делать на ранних этапах.
Если заметишь, что быстродействие упало - дай знать, самому интересно, будет ли видна разница. Это в случае, если решишься поубирать дубли из пользовательского конфига.
meson.ad-l.ink - это rgho.st? Зашибись. Ещё и ad-file.com до кучи...
Да, rghost.ru сильно изменился с тех пор, как был переименован...
С любого хоста можно брать прямую страницу (пусть и не всегда сервисно), не выдумывай. Я пользуюсь redload.ru (см. нижние 2 поля после загрузки).
Прямые ссылки можно получить далеко не всегда, многие хостинги хотят денег и/или славы и выдают динамические ссылки, которые валидны очень ограниченное время (порой и с ограничением по адресу).
А как долго твой redload.ru хранит картинки? На сайте об этом ни слова...
Добавлено: Ср янв 11, 2017 11:20
Flasher
MVV писал(а):Если заметишь, что быстродействие упало - дай знать, самому интересно, будет ли видна разница. Это в случае, если решишься поубирать дубли из пользовательского конфига.
Дубли скорее уберу. Прекрасно осознаю общественную пользу, просто пришла она несвоевременно. И тестирование скорее будет небыстрым. По ходу вызова разных команд в разные дни придёт понимание, т.ч. с получением результатов явная неопределёнка, к тому же восприятие сотых секунды - дело тонкое.
[cut="Про обменники:"]
MVV писал(а):выдают динамические ссылки
Не знаю про такие и знать не хочу.
MVV писал(а):А как долго твой redload.ru хранит картинки?
Сколь угодно. Пример
4-хлетней давности. См. выше второй обменник, там вся инфа на виду. До кучи 3-й: pixic.ru.[/cut]
Добавлено: Ср янв 11, 2017 12:59
MVV
с получением результатов явная неопределёнка, к тому же восприятие сотых секунды - дело тонкое
Меня вполне устроит, если с виду ничего не изменится. Главное, чтобы не было сильно ощутимого замедления (но оно скорее всего будет заметно только при организации сильно плотных циклов).
А про обменник - убедил, спасибо.
Добавлено: Чт янв 12, 2017 11:38
MVV
Так что, поиск активного окна после tcm(905,1) все-таки не срабатывает? Как это воспроизвести?
Добавлено: Чт янв 12, 2017 12:25
sa
MVV
У меня срабатывает.
Добавлено: Чт янв 12, 2017 12:31
Flasher
MVV
Внимательней перечитай
серёдку поста.
Добавлено: Чт янв 12, 2017 13:21
MVV
Мог бы и более дружественно сказать, если я что-то пропустил.
И у меня всё так, внимательнее вглядись в команды. В первом случае я вывожу дескриптор активного диалога в
шапке главного окна, а во втором (который я назвал более наглядным и весёлым) - пишу "i am active!" в
шапке активного диалога.
В общем, главное, что работает.
Добавлено: Чт янв 12, 2017 13:25
Flasher
Перед тестами человек вглядывается не в команды, а в описание:
MVV писал(а):Ну а поиск активного диалогового окна теперь выглядит так:
Связать это с какой-то шапкой весьма затруднительно.
P.S.: Серёдка дружественней, чем середина.
MVV писал(а):В общем, главное, что работает.
Это точно.
Добавлено: Чт янв 12, 2017 16:06
MVV
В том примере главное было - показать
findwnd(,,,,2), а во что завернуть - дело вкуса, можно отображать в шапке тотала (для отладки очень удобно писать в шапку тотала через
settext), можно ещё что-то делать с дескриптором.
