Форум: "WinAPI";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизБлокировка сочетаний клавиш Найти похожие ветки
← →
Sphinx (2004-10-02 22:55) [0]Как можно заблокировать сочетания клавишь (Alt+Tab, Win+D и прочих) на время выполнения приложения?
Просто пишу полноэкранное приложение на DirectX и при восстановлении получаю кучу ошибок...часть исправил, а часть не получается, вот и думаю, нельзя ли заблокировать сочетания клавишь, хотябы на время тестирования?
← →
Sphinx (2004-10-04 00:16) [1]что все знают и молчат?
← →
cerber1 © (2004-10-04 00:27) [2]Попробуй прописать их как ситемные комбинации из твоего приложения.
← →
Gero © (2004-10-04 00:28) [3]Ошибки исправлять надо, а не костыли расставлять.
← →
Cobalt © (2004-10-04 01:39) [4]> Sphinx
Цитата из меня же:
" Когда игрушки блокируют комбинации CAD, Alt+Tab и т.п. - ненавижу. УБИТЬ ГОТОВ!"
P.S. Вычищай баги.
← →
kaZaNoVa © (2004-10-04 02:20) [5]Cobalt © (04.10.04 1:39) [4]
> " Когда игрушки блокируют комбинации CAD, Alt+Tab и
> т.п. - ненавижу. УБИТЬ ГОТОВ!"
120% согласен !!!!!!!!!!!!!!!!!
← →
Gero © (2004-10-04 07:43) [6]
> Когда игрушки блокируют комбинации CAD
Ни хрена ж себе игрушки у тебя :)
← →
Sphinx (2004-10-04 12:22) [7]Да я исправлю...там проблема то только с востановлением поверхностей DirectX выходит так что после сворачивания и востановления не получается восстановить поверхность и приложение просто закрывается.
Мне эта блокировка нужна временно, для себя !!!
К релизу естественно все подобное уберу, а ошибки исправлю !!!
← →
Sphinx (2004-10-04 12:30) [8]Тогда такой еще вопрос. Достаточно ли для проверки активности приложения обрабатывать команду WM_ACTIVE или нужны еще какие-то. А то пока что обрабатываю только эту и наблюдаю вышеозначенные проблемы.
Пишу на память так как сейчас Делфи под рукой нет:
case aMSG of
WM_ACTIVE: begin
// если приложение потеряло активность
if LOWORD(wParam)=INACTIVE then
appActive:=False
// иначе
else
begin
// принудительно устанавливаем активное окно
activHandle:=SetForgroundWindow(mainHandle);
// если активное окно - приложение
if activeHandle=mainHandle then
begin
// восстанавливаю поверхности
DDResult:=SurfaseRestore;
// если поверхности не восстановлены
// закрываю приложение
if DDRes<>DD_OK then
appRun:=False;
end;
appActive:=True;
end;
end;
← →
Alex_s (2004-10-04 12:30) [9]Убей оболочку на время отладки.
← →
kaZaNoVa © (2004-10-04 12:34) [10]Gero © (04.10.04 7:43) [6]
Max Pane - я только за блокировку када им - готов был его в своё время удалить ....
← →
Sphinx (2004-10-04 12:41) [11]> Alex_s (04.10.04 12:30) [9]
Из под Делфи даже и не пытаюсь запускать...компилирую и запускаю сам exe-файл.
В этом кстати и трудность, в логе отладки последняя запись: про невозможность восстановить одну из поверхностей. По коду пока не разобрался почему, хочу вот пока отключить возможность сворачивания окна, отладить основной код, в нем тоже ошибки естественно есть, чтобы на отрисовку не грешить, а потом подоробно проработать функцию восстановления.
← →
Cobalt © (2004-10-05 00:30) [12]А почему для отладки обязательно отрисовывать в полный экран?
Использхуй окно.
← →
Sphinx (2004-10-05 00:43) [13]> А почему для отладки обязательно отрисовывать в полный экран?
> Использхуй окно.
ну во-первых потому что приложение полноэкранное :)
а во-вторых усложнять код в котором и так есть ошибки...хммм...я тогда вообще застрелюсь :)
а по поводу восстановления, ошибка возникает на восстановлении поверхности превышающей размерами основную. Остальные без проблем. Вот и думаю не пересоздавать ли её вообще.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.051 c