안녕하세요? 착한입니다.
Windows Mobile 5.0 이상에서 기기의 버튼을 모두 비활성화 할때
후킹하는 방법도 있고 다른 방법도 있기는 하지만
가장 쉬운 방법이 AllKeys 함수 있는 듯합니다.
AllKeys(TRUE);
라고 하면 모든 버튼이 비활성화 됩니다.
다시 복원 하려면 AllKeys(FALSE);
로 하시면 됩니다.
하지만 방향키와 전원 키는 비활성화되지 않습니다.
------------------------------------------------------
Windows Mobile OS에서 개발하다 보면 Power Management 를 해 주어야 할 경우가 많습니다.
이때 PM 이벤트를 받거나 수동으로 관리하고자 하면 PowerPolicyNotify 함수를 사용하면 됩니다.
PowerPolicyNotify(PPN_UNATTENDEDMODE, TRUE);
위와 같이 하게 되면 프로그램에서 PM 관련 메시지를 받아 올 수 있습니다.
WM 6.0 SDK의 PM 관련 예제가 있으니 참조하시면 도움이 될 듯 합니다.
예를 들어 오디오 플레이어에서 backlight가 꺼질 때 Screen Off 기능을 구현할 수 도 있을 것입니다.
위의 함수를 사용하기 위해서는
#include <pm.h>
#include <pmpolicy.h>
와 같이 헤더 파일을 추가해 주셔야 합니다.
또한 프로그램 종료 할때는 PowerPolicyNotify(PPN_UNATTENDEDMODE, FALSE); 로 원상태로 돌려 주는 것이 좋습니다.
참고로 PM 쪽을 사용하지 않을 것을 추천드리고 싶지만 꼭 필요하다면 사용하는 것이 편리할 수 있습니다.
-----------------------------------------------------------
_memicmp 함수에 대해서 알아 보려고 합니다.
보통 문자열 비교할 때, 대소 문자 까지 고려해서 구분해야 한다면 소문자나 대문자로 바꾸거나 별도의 비교 함수를 사용해야
합니다. 임베디드 환경에서는 stricmp 함수가 없다고 에러가 날 경우도 있기에...
그때 사용할 수 있는 함수가 바로 _memicmp 입니다. 대소 문자 까지 고려해서 비교할 수 있습니다.
사용법은 _memicmp(Name,"Kind Man" ,10); 식으로 하면 됩니다.
인자로 비교 문자열 2개와 크기를 넘겨 주면 됩니다. 같으면 0 이 반환 됩니다. ^^
별도의 비교 함수를 만들어서 빠르게 처리하지 않고 간단히 테스트 할 때 한번 사용해 보세요.
함수 앞에 _ 이 들어 간다는 것을 잊지 마세요.