![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка сочетаний клавиш [D7, WinXP]
Sphinx © (2004-10-02 22:55:00)Как можно заблокировать сочетания клавишь (Alt+Tab, Win+D и прочих) на время выполнения приложения?
Просто пишу полноэкранное приложение на DirectX и при восстановлении получаю кучу ошибок...часть исправил, а часть не получается, вот и думаю, нельзя ли заблокировать сочетания клавишь, хотябы на время тестирования?
Sphinx (2004-10-05 00:43:00) [1]> А почему для отладки обязательно отрисовывать в полный экран?
> Использхуй окно.
ну во-первых потому что приложение полноэкранное :)
а во-вторых усложнять код в котором и так есть ошибки...хммм...я тогда вообще застрелюсь :)
а по поводу восстановления, ошибка возникает на восстановлении поверхности превышающей размерами основную. Остальные без проблем. Вот и думаю не пересоздавать ли её вообще.
Cobalt (2004-10-05 00:30:00) [2]А почему для отладки обязательно отрисовывать в полный экран?
Использхуй окно.
Sphinx (2004-10-04 12:41:00) [3]> Alex_s (04.10.04 12:30) [9]
Из под Делфи даже и не пытаюсь запускать...компилирую и запускаю сам exe-файл.
В этом кстати и трудность, в логе отладки последняя запись: про невозможность восстановить одну из поверхностей. По коду пока не разобрался почему, хочу вот пока отключить возможность сворачивания окна, отладить основной код, в нем тоже ошибки естественно есть, чтобы на отрисовку не грешить, а потом подоробно проработать функцию восстановления.
kaZaNoVa (2004-10-04 12:34:00) [4]Gero © (04.10.04 7:43) [6]
Max Pane - я только за блокировку када им - готов был его в своё время удалить ....
Sphinx (2004-10-04 12:30:00) [5]Тогда такой еще вопрос. Достаточно ли для проверки активности приложения обрабатывать команду 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:00) [6]Убей оболочку на время отладки.
Sphinx (2004-10-04 12:22:00) [7]Да я исправлю...там проблема то только с востановлением поверхностей DirectX выходит так что после сворачивания и востановления не получается восстановить поверхность и приложение просто закрывается.
Мне эта блокировка нужна временно, для себя !!!
К релизу естественно все подобное уберу, а ошибки исправлю !!!
Gero (2004-10-04 07:43:00) [8]
> Когда игрушки блокируют комбинации CAD
Ни хрена ж себе игрушки у тебя :)
kaZaNoVa (2004-10-04 02:20:00) [9]Cobalt © (04.10.04 1:39) [4]
> " Когда игрушки блокируют комбинации CAD, Alt+Tab и
> т.п. - ненавижу. УБИТЬ ГОТОВ!"
120% согласен !!!!!!!!!!!!!!!!!
Cobalt (2004-10-04 01:39:00) [10]> Sphinx
Цитата из меня же:
" Когда игрушки блокируют комбинации CAD, Alt+Tab и т.п. - ненавижу. УБИТЬ ГОТОВ!"
P.S. Вычищай баги.
Gero (2004-10-04 00:28:00) [11]Ошибки исправлять надо, а не костыли расставлять.
cerber1 (2004-10-04 00:27:00) [12]Попробуй прописать их как ситемные комбинации из твоего приложения.
Sphinx (2004-10-04 00:16:00) [13]что все знают и молчат?