2009-10-21 7 views
1

Motorola MC75의 하드웨어 버튼을 사용하여 양식에서 생성 한 버튼 이벤트 기능을 수행하려고합니다. 그러나 WindowsCE.Forms.HardwareButton 클래스를 사용하려고 시도했지만 작동하지 않을 수 있습니다. 심지어 양식에 KeyDown 이벤트를 캡처 할 수 없습니다. 이벤트를 설정하고 KeyPreview가 폼에서 true로 설정되어 있지만 디버깅하는 동안 장치를 누르는 하드웨어 단추에서 이벤트가 실행되지 않습니다.Windows Mobile 6의 HardwareButton

제안 사항? 사전에

감사합니다.

답변

0

일반적으로 하드웨어 버튼 컨트롤은 장치마다 다릅니다. Motorola/Symbal은 자사 디바이스 용 SDK를 가지고 있지만, 링크를 찾을 수 없었습니다. 일반적으로 하드웨어 단추를 읽고 제어하기 위해 사용자가 의도 한 장치에 제조업체 별 DLL이 있습니다.

1

응용 프로그램에 모든 키를 전달하는 고유 기능이 있습니다.

[DllImport("coredll.dll", SetLastError = true)] 
static extern bool AllKeys(bool bAllKeys); 

See this MSDN blog (C++ 예) AllKeys를 사용하여 Windows Form에서 KeyDown 및 KeyUp 이벤트를 수신 할 수 있습니다. 모든 Windows Mobile 2003 - 현재 장치에서 작동합니다.

+0

음, KeyDown 이벤트에서 거의 모든 키가 캡처되지만, 원하는 키 2 개를 얻지 못했습니다. 이것들은 장치의 측면에있는 노란색 단추입니다. 어떤 생각? –

+0

스캐너 웨지 프로그램이 실행 중입니까? 스캐너 웨지 프로그램을 닫은 다음 노란색 스캐너 버튼에 대한 KeyDown 이벤트가 있는지 확인하십시오. 또 다른 옵션은 SetWindowsHookEx (문서화되지 않음)를 사용하는 것입니다. Google에는 많은 예제가 있습니다. 후크를 실행중인 다른 프로그램이 이미 있으면 일부 장치에서 SetWindowsHookEx가 실패하는 것을 보았습니다. 대부분의 경우 스캐너 쐐기 프로그램은 다른 훅이 열려있는 프로그램입니다. –