2009-03-09 20 views
0

Wir haben eine Windows Mobile-Anwendung, die derzeit auf Symbol (jetzt Motorola) Geräten läuft. Wir verwenden die SDKs des Herstellers, um beispielsweise Barcode-Scans zu registrieren.Wie ermittelt man den Typ des Windows Mobile-Geräts?

Wir müssen jetzt die Software mit Intermec-Geräten arbeiten lassen.

Ich habe bereits den Scan-Code hinter einer Schnittstelle abstrahiert, so dass ich nur die Intermec APIs hinter diese Schnittstelle wickeln muss und dann die richtige Version für das verwendete Gerät laden muss.

Ich habe jedoch einige Schwierigkeiten herauszufinden, welche Art von Gerät die Software läuft. Ich könnte einfach versuchen, den Symbol-Code zu laden, und wenn das fehlschlägt, versuchen Sie es mit dem Intermec-Code, aber das ist ziemlich Unsinn.

Weiß jemand, wie ich den Gerätetyp programmatisch ausarbeiten kann?

Antwort

2

Siehe hierzu link. Es wird Ihnen helfen, die OEM-Informationen des Geräts zu erhalten.

+0

Danke, ich werde geben, dass ein versuchen und sehen, ob es hilft. –

+0

Ausgezeichnet, scheint mir zumindest etwas zu geben, mit dem ich arbeiten kann. –

-1

Dies ist nativer Code, aber es funktioniert für mich.

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

parsen dann einfach den Puffer, der Vorrichtung, um herauszufinden, es ist.

+0

Die ursprüngliche Frage ist eindeutig für NetCF getaggt, also wird dies nicht ohne viel mehr Code funktionieren. Selbst dann sagt es Ihnen nicht, welche Art von Gerät es ist, es sei denn, Sie haben eine Master-Liste von dem, was möglicherweise zurückgegeben werden könnte. – ctacke

0

Von http://www.christec.co.nz/blog/archives/77

den Code unten verwenden und rufen 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); 
    } 

} 
Verwandte Themen