![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
xakdima |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 24.2.2009 Репутация: 1 Всего: 1 |
Делаю прогу для снятия скриншотов, в ХР снимает отлично, а вот в Windows7 если игра запущена в полноэкранном режиме, то получаю либо снимок окна расположенного под окном игры, либо просто черный квадрат.
Хочу понять, как в Win7 теперь работают приложения в полноэкранном режиме. |
|||
|
||||
BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 4 Всего: 10 |
Как решение "малой кровью", могу предложить временно отключать в Висте и Семерке Aero посредством DwmEnableComposition, делать скриншот и включать обратно
Если же делать правильно, то надо перехватывать создание устройства DirectX и сохранять BackBuffer средствами DirectX -------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Лучше сразу смотреть в сторону DirectX
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
xakdima |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 24.2.2009 Репутация: 1 Всего: 1 |
Про перехват я уже думал. Но наделся есть какой другой способ. Буду искать информацию как подменить метод в COM, для OpenGL уже все сделал =)
|
|||
|
||||
Sonic7272 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 18.9.2009 Репутация: нет Всего: 3 |
Может тему оживим? Инфы в инете ну ооочень мало. Может кто то понял в чем фокус?
|
|||
|
||||
bigbuka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 1.10.2009 Репутация: нет Всего: нет |
c DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);
вместо скрина просто черный экран причем если например во время скрина на рабочий стол накладывается что-то оверлейное то оно попадает в скрин например таблички скайпа о появлении пользователя в сети тему действительно надо оживить вот нашел код по снятию скрина в DirectX приложении там необходимо найти g_hWnd - окно directX приложения (ну это не сложно - FindWindow) и найти g_pd3dDevice - сам незнаю что это ибо в dx приложениях не шарю... может кто знает как получить этот g_pd3dDevice из чужого приложения??
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
xakdima |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 24.2.2009 Репутация: 1 Всего: 1 |
Введение в COM Перехват методов COM интерфейсов |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Статья очень интересная, но увы она не поможет bigbuka перехватить COM интерфейс в чужом приложении |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |