• 전체강좌

    다 알고 있는 Tip 이야기 3 - 프로그래밍 팁

    twitter facebook

    안녕하세요? 착한입니다.

    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 이 반환 됩니다. ^^

     

    별도의 비교 함수를 만들어서 빠르게 처리하지 않고 간단히 테스트 할 때 한번 사용해 보세요.

     

    함수 앞에 _ 이 들어 간다는 것을 잊지 마세요.