2009-03-09 3 views
0

Symbol (현재 Motorola) 장치에서 실행중인 Windows Mobile 응용 프로그램이 있습니다. 바코드 스캔 등록과 같은 작업을 수행하기 위해 제조업체의 SDK를 사용합니다.Windows Mobile 장치 유형을 확인하는 방법은 무엇입니까?

이제 Intermec 장치에서 소프트웨어를 작동시켜야합니다.

이미 스캐닝 코드가 인터페이스 뒤에 추상화되어 있으므로 Intermec API를 해당 인터페이스 뒤에 랩 한 다음 사용중인 장치의 올바른 버전을로드해야합니다.

그러나 소프트웨어가 실행되는 장치 유형을 확인하는 데 약간의 어려움이 있습니다. Symbol 코드를로드하려고 시도 할 수는 있지만 Intermec 코드를 사용하지 못하면 오히려 쓰레기가됩니다.

아무도 내가 프로그래밍 방식으로 장치 유형을 해결할 수있는 방법을 알고 있습니까?

답변

2

이 부분은 link을 참조하십시오. 그것은 당신이 장치의 OEM 정보를 얻을 도움이 될 것입니다.

+0

감사를 호출, 내가 도움이된다면 시도하고 볼 것을 줄 것이다. –

+0

훌륭해, 최소한 나에게 뭔가를 줄 것 같다. –

-1

이것은 기본 코드이지만 저에게 적합합니다.

TCHAR buf[255]; 
SystemParametersInfo(SPI_GETOEMINFO, 255, &buf, NULL); 

그런 다음 버퍼를 분석하여 어떤 장치인지 알아냅니다. http://www.christec.co.nz/blog/archives/77

에서

+0

origianl 질문에 명확하게 NetCF 태그가 지정되어 있으므로 더 많은 코드가 없으면 작동하지 않습니다. 그렇다해도 반환 할 수있는 항목의 마스터 목록이 없으면 어떤 유형의 장치인지 알려주지 않습니다. – ctacke

0

아래의 코드를 사용하고 NativeMethods.GetOEMInfo()

private static class NativeMethods 
{ 
    [DllImport("coredll.dll")] 
    private static extern int SystemParametersInfo(uint uiAction, uint uiParam, StringBuilder pvParam, uint fWiniIni); 

    private const uint SPI_GETPLATFORMTYPE = 257; 
    private const uint SPI_GETOEMINFO = 258; 

    private static string GetSystemParameter(uint uiParam) 
    { 
    StringBuilder sb = new StringBuilder(128); 
    if (SystemParametersInfo(uiParam, (uint)sb.Capacity, sb, 0) == 0) 
     throw new ApplicationException("Failed to get system parameter"); 
    return sb.ToString(); 
    } 

    public static string GetOEMInfo() 
    { 
    return GetSystemParameter(SPI_GETOEMINFO); 
    } 

}