Здравствуйте, Passer, Вы писали:
P>писал программу которая работает с джойстиком через directx P>но оказалось что она работает только когда окно программы ативна. как сделать чтобы программа узнавала об изменениях статуса джойстика даже если активно другое окно
Там, кажется, через SetCooperativeLevel выставляются правила перехвата: DISCL_FOREGROUND или DISCL_BACKGROUND, DISCL_EXCLUSIVE или DISCL_NONEXCLUSIVE.
писал программу которая работает с джойстиком через directx
но оказалось что она работает только когда окно программы ативна. как сделать чтобы программа узнавала об изменениях статуса джойстика даже если активно другое окно
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, Passer, Вы писали:
P>>писал программу которая работает с джойстиком через directx P>>но оказалось что она работает только когда окно программы ативна. как сделать чтобы программа узнавала об изменениях статуса джойстика даже если активно другое окно
N>Там, кажется, через SetCooperativeLevel выставляются правила перехвата: DISCL_FOREGROUND или DISCL_BACKGROUND, DISCL_EXCLUSIVE или DISCL_NONEXCLUSIVE.
похоже это то что нужно. приду домой проверю спосибо.
Здравствуйте, Passer, Вы писали:
P>похоже это то что нужно. приду домой проверю спосибо.
Не забывайте одну тонкость — нельзя одновременно использовать DISCL_BACKGROUND и DISCL_EXCLUSIVE — получите отлуп. Вам надо DISCL_BACKGROUND | DISCL_NONEXCLUSIVE, но имейте в виду, что устройство у вас может быть "отобрано" другой прогой, юзающей DISCL_FOREGROUND | DISCL_EXCLUSIVE, так что эту ситуацию нужно обрабатывать корректно...
Здравствуйте, koandrew, Вы писали:
K>Здравствуйте, Passer, Вы писали:
P>>похоже это то что нужно. приду домой проверю спосибо.
K>Не забывайте одну тонкость — нельзя одновременно использовать DISCL_BACKGROUND и DISCL_EXCLUSIVE — получите отлуп. Вам надо DISCL_BACKGROUND | DISCL_NONEXCLUSIVE, но имейте в виду, что устройство у вас может быть "отобрано" другой прогой, юзающей DISCL_FOREGROUND | DISCL_EXCLUSIVE, так что эту ситуацию нужно обрабатывать корректно...
как отобрать. т.е. если найдется прграмму кторая юзает DISCL_FOREGROUND | DISCL_EXCLUSIVE я перестану получать информацию о джойстике??
это плохо. можно ли что нибудь с этим поделать???
Здравствуйте, Passer, Вы писали:
P>как отобрать. т.е. если найдется прграмму кторая юзает DISCL_FOREGROUND | DISCL_EXCLUSIVE я перестану получать информацию о джойстике?? P>это плохо. можно ли что нибудь с этим поделать???