Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-1099031691
Nikolay M.
2004-10-29 10:34
2004.11.14
В Ингосстрахе никто не работает? :)


1-1099027450
JOnyto
2004-10-29 09:24
2004.11.14
Приостановление выполнения процедуры до нажатия кнопки "Далее"!


1-1098871447
Alexious
2004-10-27 14:04
2004.11.14
Chart


1-1099039366
Aleksandr.
2004-10-29 12:42
2004.11.14
Как получить поток по его ThreadID?


14-1098344148
Игорь Шевченко
2004-10-21 11:35
2004.11.14
Ничего себе...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский