Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Дневники и блоги —› Патч Windows 7 для включения графического ускорения в классической теме
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >>
Посл.ответ Сообщение

Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 18 февраля 2019 01:13 · Поправил: Jurim
· Личное сообщение · #1

=== Патч Windows 7 для включения GPU ускорения в классической теме ===

Пролог:
Посвящено всем, кто привык работать в системе с классическим оформлением окон. Остальные, кто пользуются Windows 10 и спокойно работают в планшетозаточенном, вырвиглазном интерфейсе, упрощенном до уровня домохозяйки - вам эти проблемы не интересны, эта тема не для вас. Уйдите сразу и не провоцируйте на оскорбления.

Описание проблемы:
Графическое ускорение в Windows 7 используется только в аэро-темах и выключено в базовых темах, в том числе классической. Поэтому в все элементы интерфейса в аэро теме - прорисовываются с помощью видеокарты, а в классической теме - центральным процессором. При наличии нормальной видеокарты (новее 2010 года) аэро темы работают гораздо производительнее базовых тем (в том числе классической), что вызывает удивление, поскольку графически сложные темы отрисовываются быстрее примитивно простых. Классическая тема только в Windows 98/2000/XP работала быстро, а в Windows 7 - это угрюмый тормоз. Для устанения этой проблемы существует аналог классической темы (по виду), но в виде аэро-темы (по свойствам) - она использует ресурсы видеокарты и работает в разы быстрее встроенной классики.

Усугубляет проблему, что некоторые разработчики драйверов, например AMD, наплевательски относятся к реализации 2D GDI функций в Radeon драйверах новее 2014 года, что ещё более замедляет работу классической темы - Низкая 2D GDI производительность новых АМД видеокарт

Но в других производителей (NVidia, Intel) дела хоть и лучше, но не намного... Приведённые глюки в Видеодемонстрация сравнения тем. 1-я часть видео на примере отрисовки интерфейса в программах:
- Performance Test 8.0 (перемигивание при перемещении по результатам)
- NetMonitor - https://2ip.ru/download/NetMonitor.exe (мигание окном 2 раза в секунду)
- Диспетчер задач (глюки отрисовки столбика загрузки ЦП)
есть на всех видеокартах у всех пользователей и причина этому - установленный драйвер на видеокарту. После удаления драйвера, то есть на "Стандартном адаптере VGA" - этих проблем нет. Абсурд! Но так и есть, проверьте сами.

Варианты решения:
1) Использовать тему - Классическая тема в аэро-исполнении "Classic AE mod 2019_1" Насколько эта тема более производительна продемонстрировано в - Видео демонстрация сравнения тем
2) Найти и пропатчить Винду, чтобы включить ускорение (например использовать какие-то файлы с Windows 8)
3) Написать фоновую программу, которая переводит работу ОС в режим, когда графика ускоряется
4) Написать драйвер "двойной буферизации" видеовывода

Осуществлимо ли это?
Я думаю да. Я видел, много раз, как после запуска чего-то видеовывод в классической теме ускорялся. Я не могу понять причину этого феномена, но в реальности так происходит... Мне не важно, через какую баг/фичу это реализуется, я вижу факт - в определённых условиях классика становится более производительной и это нужно использовать.

Реальные примеры ускорения видеовывода в классической теме:

Примеры 1, 2, 3, 6 - для видеокарт любого производителя (NVidia, Intel, AMD).
Примеры 4, 5 - только для видеокарт AMD.

1) Запускаем NetMonitor - (окно 2 раза в секунду мигует). Берем за заголовок окна и начинаем его медленно возить по экрану. Происходит чудо, мигания убираются. То есть Винда может отрисовывать окно без багов, но почему на неподвижном окне она этого не делает. Давайте сделаем какую то прогу, которая работает в фоне и дрючит размер окна на 1 пиксель. Главное чтобы это ускоряло видеовывод и не было незаметным для пользователя.

2) Запускаем встроенный "Диспетчер задач" - столбик загрузки ЦП передергивается, когда нет нет нагрузки, либо она постоянна - то есть когда графика не перерисовывается - она начинает лагать.

3) Запускаем Performance Test 8.0 ( наблюдаем перемигивание при перемещении по результатам). Удаляем драйвер на видеокарту - перемигивание убирается. Видимо "Стандартный адаптер VGA" использует двойную буфферизацию, которую не используют драйвера от вендоров. Но почему система с драйвером должна работать медленнее, чем без драйвера. Нафиг такие дрова...

4) Увеличение 2D производительности из ничего. Оказалось, если под окном спектра расположить окно "Radeon Settings", чтобы хоть 1мм окна выступал за пределы окна спектра - то отрисовка спектра ускоряется в десятки раз и FPS в simpleGLUT повышается с 40-60 до 1100-1300. Видеодемонстрация - https://www.youtube.com/watch?v=wnzbjrK_gCA
Видимо отрисовка окна "Radeon Settings" задействует какие-то функции видеокарты, которые параллельно заставляют работать быстро весь интерфейс.

5) При масштабировании размеров окна. Вообще не понятно, масштабируемое окно должно тормозить, а оно наоборот ускоряется. Глюки, которые видны на экране - их нет при завате экрана программой bandicam. Видеозаписи смотреть нужно обе, по-очереди.
С фотоаппарата - https://www.youtube.com/watch?v=XpJhC8N9g0Y
С bandicam - https://www.youtube.com/watch?v=rbPjna3myew

6) Есть рецепты, когда картинка ускоряется после запуска в фоне аудио или видеопроигрывателя, который просто переводит мультимедиа таймер в определенный режим, что тоже ускоряет видеовывод

Постановка задачи
Вообщем нужны любые мысли (патче файлов ОС, создании фоновой программы, драйвере двойной буферизации) - не важно что это будет и как реализовано, важно чтобы это заставляло ОС работать быстрее в классическом оформлении.



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 23 февраля 2019 16:18 · Поправил: Jurim
· Личное сообщение · #2

Alchemistry

Единственный кто спамит - то это ты.... Пишешь "претензиии", но сам ничем не помог по сути вопроса, кроме "бла-бла-бла". Если нечем заняться - вот тебе 20 серий фильма о глюках видеодрайверов, изучай 1й пост - http://www.cyberforum.ru/videocards/thread2394950.html#post13275593

rmn
rmn пишет:
Тогда ты пришел не туда.


Там где я ходил бесполезно 2 года, я стыкался только с сотнями людей, которые:
1) вообще не понимают что такое "классическая тема"
2) спрашивают зачем тебе классическая тема, когда есть аэро, которая лучше всех.
На мои слова что мне удобнее работать в классике - полное непонимание.
3) там не то, чтобы предложить решение, там 99% вообще не понимают что я пишу

Поэтому приходится обращаться к хардкорным специалистам. Я не программист, но "по мелочи" скомпилить могу. В наличии есть Visual Studio 6.0 и C++ Builder 6.0. Только я могу скомпилить готовый исходник, с нуля сделать проект - я не в состоянии.

Дайте готовый проект или готовый бинарник. Ато я сейчас беру ваши 10 строк, начинаю изучать куда их вообще вставить... Спустя месяц я создам проект, спустя 2 месяца я откомпилю и окажется, что идея кривая... И я буду думать, толи я не так скомпилил, толи идея изначально не рабочая.

Я думаю, не всё так просто. Вин 7 с 2009 года, а на дворе 2019 год - все смотрят на мельтешащую классическую тему, а решения по сей день нет.



Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 23 февраля 2019 16:36 · Поправил: rmn
· Личное сообщение · #3

Jurim пишет:
Только я могу скомпилить готовый исходник, с нуля сделать проект - я не в состоянии.

Как ты собирался дрова фиксить, лол?

То и есть готовый проект. Перед ним написать
Code:
  1. #inсlude <windows.h>

после него
Code:
  1. int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
  2. {
  3.     BoostWindows();
  4.     return 0;
  5. }

и можно компилить.




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 23 февраля 2019 16:42 · Поправил: Boostyq
· Личное сообщение · #4

IEatDead пишет:
Клерк, ты что ли соревнуешься

А он всех подозревает в написании вредоносного ПО
Но тут у кого что болит, он просто сам его пишет, вот ему везде мерещится

-----
В облачке многоточия




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 23 февраля 2019 16:43
· Личное сообщение · #5

Перенес этот весь треш в "Дневники и блоги", хотя следовало бы закрыть..



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 23 февраля 2019 17:10
· Личное сообщение · #6

rmn

Значит я создаю файл "classic_theme_fix.c" с содержимым
Code:
  1. #inсlude <windows.h>
  2.  
  3. int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
  4. {
  5.     BoostWindows();
  6.     return 0;
  7. }
  8.  
  9. static BOOL WINAPI EnumProc (HWND hwnd, LPARAM param)
  10. {
  11.     DWORD style;
  12.     
  13.     style = (DWORD)GetWindowLong (hwnd, GWL_EXSTYLE);
  14.     SetWindowLong (hwnd, GWL_EXSTYLE, style | WS_EX_COMPOSITED);
  15.      
  16.     return TRUE;
  17. }
  18.      
  19. void BoostWindows (void)
  20. {
  21.     EnumWindows (EnumProc, 0l);
  22. }


Вопросы:
1) я должен скомпилить. Visual Studio 6.0 подойдет?
2) насколько я понимаю программа выполнится 1 раз и выйдет, а мне нужно чтобы она постоянно висела в памяти и привсаивала стиль WS_EX_COMPOSITED всем запускаемым приложениям
3) что делать с полноэкранными приложениями?




Ранг: 271.4 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 23 февраля 2019 17:21
· Личное сообщение · #7

Jurim пишет:
чтобы она постоянно висела в памяти и привсаивала стиль WS_EX_COMPOSITED всем запускаемым приложениям

Это делается например с SetWindowsHookEx

Boostyq пишет:
он просто сам его пишет, вот ему везде мерещится

А еще ему петухи везде мерещатся. Совпадение ли это?

-----
2 оттенка серого




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 23 февраля 2019 19:07
· Личное сообщение · #8

rmn

Что-то не получается.
Compiling...
classic_theme_fix.c
c:\classic_fix\classic_theme_fix.c(4) : error C2055: expected formal parameter list, not a type list
c:\classic_fix\classic_theme_fix.c(5) : warning C4013: 'BoostWindows' undefined; assuming extern returning int
c:\classic_fix\classic_theme_fix.c(14) : error C2065: 'WS_EX_COMPOSITED' : undeclared identifier
c:\classic_fix\classic_theme_fix.c(20) : error C2371: 'BoostWindows' : redefinition; different basic types
Error executing cl.exe.

Classic_Fix.exe - 3 error(s), 1 warning(s)





Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 23 февраля 2019 19:17
· Личное сообщение · #9

Jurim
WinMain перенести в самый конец и переписать на
Code:
  1. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nShowCmd)
  2. {
  3.     BoostWindows ();
  4.     return 0;
  5. }

Сразу после #include <windows.h> (с новой строки) написать
Code:
  1. #define WS_EX_COMPOSITED 0x02000000L





Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 23 февраля 2019 19:51
· Личное сообщение · #10

Jurim пишет:
c:\classic_fix\classic_theme_fix.c(5) : warning C4013: 'BoostWindows' undefined; assuming extern returning int


Jurim пишет:
c:\classic_fix\classic_theme_fix.c(20) : error C2371: 'BoostWindows' : redefinition; different basic types


В хидере BoostWindows() со спецификатором extern прописана? Убери extern! Пропиши void BoostWindows();

-----
IZ.RU




Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 23 февраля 2019 19:54
· Личное сообщение · #11

DenCoder пишет:
В хидере BoostWindows() со спецификатором extern прописана?

Нет, просто чукча не только не писатель, но и не читатель
Нужно или функции в правильном порядке выставить или прототипы добавлять.

| Сообщение посчитали полезным: Jurim


Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 23 февраля 2019 19:56 · Поправил: Boostyq
· Личное сообщение · #12

DenCoder пишет:
В хидере

Заголовочного файла нет вообще, на скриншоте проекта видно
П.с. Jurim почему скриншот обрезан мм? Ты что-то от нас скрываешь?

-----
В облачке многоточия




Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 23 февраля 2019 20:12
· Личное сообщение · #13

Boostyq пишет:
Jurim почему скриншот обрезан мм?

А тебе только необрезанные нравятся? Это же удобней - Alt+PrintScreen и на скрине только активное окно, ничего лишнего.

| Сообщение посчитали полезным: Boostyq

Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 23 февраля 2019 20:19 · Поправил: Jurim
· Личное сообщение · #14

Boostyq

Я не обрезал, я альт+принтскрин умею нажимать )))

rmn

Скомпилировалось без ошибок.
--------------------Configuration: Classic_Fix - Win32 Release--------------------
Compiling...
classic_theme_fix.c

classic_theme_fix.obj - 0 error(s), 0 warning(s)

Но ехешник не создается.
--------------------Configuration: Classic_Fix - Win32 Release--------------------
Linking...
LIBC.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Release/Classic_Fix.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Classic_Fix.exe - 2 error(s), 0 warning(s)

Что не так?
Может я проект не правильно создал. Создавал как "Win32 Console Application"




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 23 февраля 2019 20:26 · Поправил: Boostyq
· Личное сообщение · #15

Jurim пишет:
Что ещё не так?

Возможно у тебя проект консольный, а точка входа для гуевского
Попробуй изменить строку:
Code:
  1. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nShowCmd)

на
Code:
  1. int main()


-----
В облачке многоточия




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 23 февраля 2019 20:27
· Личное сообщение · #16

Boostyq

Так точно, я создал как "Win32 Console Application".
Нужно пересоздать как "Win32 Application" ???




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 23 февраля 2019 20:32 · Поправил: Boostyq
· Личное сообщение · #17

Jurim пишет:
Нужно пересоздать как "Win32 Application" ???

В твоем случае пофиг, просто определи точку входа соответствующую типу созданного проекта
Там и разница небольшая, просто для консольного приложения будет создаваться консоль при загрузке, но нет никаких ограничений по работе с окнами

-----
В облачке многоточия




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 23 февраля 2019 20:56
· Личное сообщение · #18

rmn

Вы гений!!!

Данный способ действительно ускоряет работу классической темы.
Те глюки, что я демонстрировал в спектре фубара, после запуска вашей программы асбсолютно исчесли!
И сейчас впервые за 2 года, я вижу неглючащий спектр фубара на АМД видеокарте.

Добавлено спустя 7 минут
Вообщем, как казалось, всё дело в двойной буфферизации. Наличие оной на 100% убирает все глюки классической темы. Я сейчас попробовал программу 2D Test - ваще супер!!! Время отрисовки уменьшается с 70 мс до 3 мс.

Как я понял, программа, а она сейчас имеет такой вид

Code:
  1. // Патч глюков классической темы Windows 7
  2.  
  3. #include <windows.h>
  4. #define WS_EX_COMPOSITED 0x02000000L
  5.  
  6. static BOOL WINAPI EnumProc (HWND hwnd, LPARAM param)
  7. {
  8.     DWORD style;
  9.     
  10.     style = (DWORD)GetWindowLong (hwnd, GWL_EXSTYLE);
  11.     SetWindowLong (hwnd, GWL_EXSTYLE, style | WS_EX_COMPOSITED);
  12.      
  13.     return TRUE;
  14. }
  15.      
  16. void BoostWindows (void)
  17. {
  18.     EnumWindows (EnumProc, 0l);
  19. }
  20.  
  21. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nShowCmd)
  22. {
  23.     BoostWindows ();
  24.     return 0;
  25. }


присваивает свойство только открытым в данный момент окнам. Так как если запустить фубар, потом вашу программу, потом зайти в спектр - то он лагает. А если открыть спектр - а потом запустить вашу программу - то всё ускоряется.

Вопрос:
Как сделать определение новых открываемых окон и посылать в новое окно это чудесное свойство?

Добавлено спустя 22 минуты
Сейчас этот текст будет везде. Чтоб вам сильно не икалось.

Code:
  1. 23 февраля 2019 года - просто прорыв в исследовании глюков на классической теме Windows 7.
  2.  
  3. Запоминаем ник прекрасного специалиста rmn и молимся за его здоровье!!! Именно он подтвердил мои предположения, к которым я шел 2 долгих года. Глюки классической темы и глюки АМД драйверов - это отсутствие двойной буферизации.
  4.  
  5. Именно rmn предложил способ засылать в открытое окно стиль WS_EX_COMPOSITED делается это функциями
  6.     DWORD style;
  7.     style = (DWORD)GetWindowLong (hwnd, GWL_EXSTYLE);
  8.     SetWindowLong (hwnd, GWL_EXSTYLE, style | WS_EX_COMPOSITED);
  9.  
  10. после чего данное окно приобретает некое "свойство", что на нем принудительно включается двойная буферизация!!! И данное окно начинает в классической работать также быстро, как и аэро-теме.
  11.  
  12. Я уже проверил это спектре фубара - и впервые за 2 года увидел нелагающий спектр. Программа 2D Test моего помощника Михалыча, тоже начала отрисовываться гораздо быстрее (время отрисовки сетки уменьшилось с 50-70 мс до 3-4 мс).
  13.  
  14. Прослявляем имя гениального специалиста rmn. Его идея сработала. Остальное только реализовать программу, которая будет циклически опрашивать все окна и выдавать им магическон свойство WS_EX_COMPOSITED.





Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 23 февраля 2019 21:27 · Поправил: Boostyq
· Личное сообщение · #19

rmn пишет:
А тебе только необрезанные нравятся?

Jurim пишет:
Запоминаем ник прекрасного специалиста

Запомнили, спец по шуткам о членах

-----
В облачке многоточия




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 23 февраля 2019 22:09
· Личное сообщение · #20

ВНИМАНИЕ ВСЕМ

Огромная просьба поставить спасибку этому гениальному человеку - rmn

Я не знаю, как это реализовать дальше, но его способ заслать окну стиль WS_EX_COMPOSITED принудительно включает двойную буферизацию и убирает 2D лаги на класической теме Вин 7 - это 100% работает. Я это проверил и видел своими глазами!!

Сейчас задача - нужно довести его идею до ума, то есть написать программу, которая присваивает каждому новому окну этот стиль. То есть прога должна постоянно висеть в памяти и срабатывать на новые окна. Возможно нужно добавить какие-то проверки, чтобы эти функции работали только в упрощенных темах и не работали в аэро темах (они там не нужны), так же дополнительные проверки с полноэкранным режимом. Ну вообщем программистам виднее. Кто может подсказать, какие глюки это может вызвать - тоже прошу поделиться в этой теме.




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 23 февраля 2019 23:19
· Личное сообщение · #21

Jurim пишет:
Сейчас задача - нужно довести его идею до ума, то есть написать программу, которая присваивает каждому новому окну этот стиль. То есть прога должна постоянно висеть в памяти и срабатывать на новые окна.


Есть SetWindowsHookEx() и WM_NCCREATE Notification. Хук-процедура, установленная функцией SetWindowsHookEx() может отлавливать WM_NCCREATE и в передаваемой структуре менять стиль.

Ну а чтобы прога висела в памяти, можно и просто Sleep(INFINITE);

-----
IZ.RU




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 24 февраля 2019 01:08 · Поправил: Jurim
· Личное сообщение · #22

Метод с WS_EX_COMPOSITED делает главное - показывает, что ускорить видеовывод в классической теме реально.

Стали лучше работать:

1) foobar2000 - спектр полностью перестал мигать
2) Total Commander - перестали мигать текстовые метки
3) PerformanceTest - перестали мигать поля
4) Перестал мигать столбик загрузки ЦП в "Диспетчере задач", но появилась другая проблема (читай ниже)
5) 2D Test - отрисовка ускоряется в 15 раз, пропадают глюки при одновременной отрисовке с фубаром

Но и вызывает проблемы, например:
1) Появляются глюки при переключении по закладкам "Диспетчера задач"
2) TCPMonitor начинает глючить, картинка в окне бесконечно накладывается при перемещении окна и не обновляется
3) NetMonitor - вообще перестает работать, показывая белое поле
4) Глючат почти все виндовские окна - например "Службы", "Мой компьютер", "Корзина"

Вообщем, нужно ещё думать почему так происходит. Каким образом одни окна отличаются от других и засылать команду WS_EX_COMPOSITED не всем окнам, а избранным.

Как понять какими свойствами одни окна отличаются от других, почему такая разная реакция?




Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 24 февраля 2019 01:23
· Личное сообщение · #23

Jurim
Советую взять Pelles C. Шестая студия (кстати, где ты ее откопал?) неплохая вещь, но там хидеры 98 года и вообще, студия тяжелая и монструозная. А маленькие проекты лучше собирать пеллесом или кодеблокс.



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 24 февраля 2019 01:46
· Личное сообщение · #24

morgot

Скомпиленный ехе-шник получился 36 кБ размером, куда ещё меньше....
Но работает оно не совсем хорошо, оно глюкает окна, которые до этого работали без замечаний. Нужно понять чем они отличаются от других... Нужны мысли.




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 24 февраля 2019 01:54
· Личное сообщение · #25

Jurim пишет:
Нужны мысли

да ты зайоб
возьми Autoit Window info да посмотри классы, сравни там все
по поводу 36кб чет много, нуно в релизе компилить, а не в дебаге

-----
В облачке многоточия


| Сообщение посчитали полезным: morgot


Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 24 февраля 2019 03:16
· Личное сообщение · #26

Jurim
можно еще меньше, до 2-3кб сделать, вопрос - зачем? Не малварь же пишем в 98 году.



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 24 февраля 2019 13:48
· Личное сообщение · #27

rmn

Мой советник Михалыч, кинул ссылку на такую статью - https://blogs.msdn.microsoft.com/oldnewthing/20171018-00/?p=97245

Вообщем свойство WS_EX_COMPOSITED нужно включать только для "избранных" окон.
Можно ли каким-то софтом посмотреть свойства окон в разных запущенных приложениях, чтобы найти признак, чем одни отличаются от других?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 24 февраля 2019 14:25
· Личное сообщение · #28

Дело всё в том, что не столько всё зависит от свойств окон, сколько от их обработчиков.

-----
IZ.RU





Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 24 февраля 2019 14:35 · Поправил: Boostyq
· Личное сообщение · #29

Jurim пишет:
Можно ли каким-то софтом посмотреть свойства окон в разных запущенных приложениях

Меня уже бомбит, автор настолько ленивая жопка что даже не читает посты
Пусть rmn помогает

-----
В облачке многоточия




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 24 февраля 2019 17:24
· Личное сообщение · #30

Boostyq

Читаю и изучаю.
Вот нарыл целую стопку программ подобного рода - http://www.manhunter.ru/underground/1035_programmi_dlya_raboti_s_oknami_prilozheniy.html

Там масса всякой информации.
Одно не могу понять, на какие свойства нужно обращать внимание??
Куда смотреть то?




Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 24 февраля 2019 17:46
· Личное сообщение · #31

Jurim пишет:
Одно не могу понять, на какие свойства нужно обращать внимание??

На те свойства, которые вам нужны, очевидно же


<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >>
 eXeL@B —› Дневники и блоги —› Патч Windows 7 для включения графического ускорения в классической теме
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати