Russian Qt Forum
Май 05, 2024, 14:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3 4   Вниз
  Печать  
Автор Тема: [РЕШЕНО] снять ограничение на размер чужого окна  (Прочитано 24805 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« : Май 24, 2013, 01:44 »

Здравствуйте. Есть окно чужого приложения, у которого жестко задан минимальный размер. Я хочу снять это ограничение из своего приложения. Насколько я понял, надо установить хук и перехватить WM_GETMINMAXINFO. Как это правильно сделать? Спасибо.

Решение тут (тестовый проект): http://www.prog.org.ru/index.php?topic=24848.msg182586#msg182586
« Последнее редактирование: Август 21, 2013, 17:51 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #1 : Май 28, 2013, 13:10 »

Готов потыкаться, но есть пара вопросов - чужое окно какое? Qt-шное с макс сайзом ограниченным в качестве подопытного подойдёт? Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #2 : Май 28, 2013, 13:14 »

целевое — обычное HWND, не Qt-шное. ответ я вроде нашел как это делать тут (вместо хука просто переопределяется WndProc целевого окна и нужное сообщение обрабатывается, а остальные направляются окну), но не пробовал еще (несрочно). если есть желание — можешь попробовать Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #3 : Май 28, 2013, 13:30 »

Если уже нашел, скинь ссылочку я поковыряю на послеработы )
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #4 : Май 28, 2013, 13:42 »

разуй глаза Подмигивающий
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #5 : Май 28, 2013, 13:44 »

Она незаметнаааа Веселый Увидел.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #6 : Май 30, 2013, 23:04 »

оказывается нельзя изменять оконную процедуру окна, порожденного другим процессом (SetWindowLongPtr возвращает 0).
Цитировать
An application can subclass a system class, but should not subclass a window class created by another process.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #7 : Май 31, 2013, 14:28 »

Ковыряюсь с этим, пока что решения нет, но я на пути к нему Веселый
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #8 : Май 31, 2013, 15:17 »

вот наткнулся на еще один код (с хуком, и еще там длл принимает участие), вроде как рабочий: https://github.com/nirvdrum/SnapsIE/blob/master/CoSnapsie.cpp
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #9 : Май 31, 2013, 15:38 »

В принципе я до этого начал уже доходить, но путь ещё далёк Улыбающийся

Пробовали? Но извращение то ещё Веселый

Не нашёл, правда, я в этом коде место, где функция записывается в адресное пространство чужого приложения. Глядел одним глазком Улыбающийся

PS хотя это я и сам сделать могу Подмигивающий
« Последнее редактирование: Май 31, 2013, 15:47 от Bepec » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #10 : Май 31, 2013, 17:53 »

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #11 : Май 31, 2013, 19:51 »

Здравствуйте. Есть окно чужого приложения, у которого жестко задан минимальный размер. Я хочу снять это ограничение из своего приложения. Насколько я понял, надо установить хук и перехватить WM_GETMINMAXINFO. Как это правильно сделать? Спасибо.
есть такая апликуха WinSpy++ называется.
сорцы в сети валяются, саму апликуху прикладываю.
полезная в хозяйстве штучка, я им заголовки окон извлекаю и прочие штучки выколупываю.
запусти, выбери оркно и поиграйся со стилями, а потом сорцы посмотри.
ПС. на 64 битах глючит - нужно другую версию, это для 32-х.
« Последнее редактирование: Май 31, 2013, 19:53 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #12 : Май 31, 2013, 19:56 »

а сильно отличается от микрософтовского spy++?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #13 : Май 31, 2013, 20:07 »

а сильно отличается от микрософтовского spy++?
Сильно. Позволяет менять стили.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #14 : Май 31, 2013, 20:12 »

стили это конечно здорово, но мне надо минимальный размер изменить

собрал 64-битную версию из исходников — почти каждое «прицельное» приложение падает при выборе вкладки Class или нажатии на N/A WndProc'а Улыбающийся

за программу спасибо
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1] 2 3 4   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.