2

수정 자 표시기가 보이지 않도록 전체 화면으로 실행되는 응용 프로그램을 개발합니다.MC91 및 MC92의 수정 자 키 상태 (주황색, 파란색, 시프트)

이제 오렌지, 블루 및 시프트의 상태로 디스플레이에 표시된 아이콘을 업데이트하는 솔루션이 필요합니다. 재미있는 부분은이 솔루션이 Omnii XT 10, Omnii XT 15, MC65, WAP 3, WAP 4, MC91MC92에서 작동해야 윈 모바일 6.0입니다 6.5CE6.

Mobile Devices SDK V8.0_8.42743을 사용하여 Psion 장치에 대한 솔루션을 얻었습니다. 그것은 나를 OS에 따라 장치에 다른 DLL을 복사하도록 강요하지만 적어도 잘 작동합니다.

MC65에서는 .NET v2.9 (또는 v2.8 - 작동 중) 용 Motorola EMDK와 함께 작동합니다. 그러나 나는 이것이 MC91과 MC92에서도 작동 할 것으로 기대했지만 그렇지 않습니다. 사람들은 실제로이하는 주장 : Release Notes - EMDK for .NET v2.8

는 이러한 장치에 keybddr.dll을 밝혀 그러나 다른 기능이 있습니다. 나는 그들의 이름을 얻을 수는 있지만 나는 여전히 그들의 서명이 없기 때문에 나는 단지 추측하고 희망 할 수있다.

MC91

 
GetAlphaMode 
GetKeybdMode 
GetKeybdState 
RegisterKeyboardNotification 
RegisterKeyStateNotification 
SetAlphaMode 
SetKeyState 
SetMappingTable 
SetMultiMappingTable 
UnregisterKeyboardNotification 
UnregisterKeyStateNotification 

MC65

 
GetKbdModiferState 
GetKeyStateEx 
GetValidKbdModifers 
SetKbdModifierState 
SetKeyState 

MC91 및 MC92를 위해 남아있는 유일한 생각은 자신을 윈도우 메시지 큐 분석하고 다른 메시지를 기록하는 것입니다. 그러나 모든 장치가 주황색 및 파란색 키 ​​이벤트를 전송하는 것은 아닙니다. 또한 변경자 키를 활성화, 비활성화, 잠금 및 해당 키로 수정 된 키를 누르기위한 메시지 순서를 추적해야합니다. 이것은 많은 작업과 오류가 발생하기 쉬운 것처럼 보입니다. 내 상사가 기꺼이 받아들이는 게 아닙니다.


질문 :

사람이 MC91MC92과 일하는 것이 이상적 일에 오렌지, 블루변화의 상태를 얻을 수있는 방법을 제안 할 수 위에 나열된 모든 장치 및 OS에서?

+0

당신은 이미 권리를 가지고 있습니다 : 모토로라/얼룩말 지원에 대해이 문제를 해결하십시오.keybddr.dll의 Exported 함수의 이름이 있더라도 함수 인수, 유형 및 리턴 코드를 알아야합니다. 메시지 큐를 보는 것은 도움이되지 않습니다. 하드웨어 키보드 상태는 표준 Windows 메시지 큐를 통해 정상적으로 처리되지 않습니다. 키 메시지가없고 이러한 하드웨어 키 상태를 관리하는 방법에 대한 문서가 없으면 손실됩니다. – josef

답변

0

목록에있는 특정 장치를 모르지만 운영 체제의 가상 키를 통해 키를 에뮬레이트하는 경우 GetAsyncKeyState https://msdn.microsoft.com/en-us/library/ms929204.aspx을 시도해 볼 수 있으며 해당 키 중 하나가 눌려져 있는지 확인해야합니다 폴링 루프에서 그들을 누르면 어떤 종류의 이벤트가 발생합니다. 이것은 Windows CE/Mobile의 모든 릴리스에서 작동합니다.

+0

이것은 주황색과 파란색 및 오렌지색 + 키조차 작동하지 않습니다. 게다가 수정 자 키의 상태를 직접 추적해야한다는 의미 일 것이고 코드의 순서는 Blue와 Orange가 표준 단추가 아니기 때문에 장치에 따라 다릅니다. – Holly