2009-03-09 11 views
0

Şu anda Symbol (şimdi Motorola) aygıtlarında çalışan bir Windows Mobile uygulamasına sahibiz. Barkod taramalarını kaydetmek gibi şeyler yapmak için üreticinin SDK'larını kullanıyoruz.Windows Mobile aygıtının türü nasıl belirlenir?

Artık yazılımı Intermec cihazları ile çalıştırmamız gerekiyor.

Zaten bir arabirimin arkasına çizilen tarama kodum var, bu yüzden tek yapmanız gereken Intermec API'lerini bu arabirimin arkasına sarar ve daha sonra kullanılan aygıtın doğru sürümünü yüklemektir. Ancak, yazılımın hangi tür aygıtta çalıştığını çalışma konusunda bazı zorluklar yaşıyorum. Sadece Symbol kodunu yüklemeyi deneyebilirim ve sonra bu başarısız olduğunda Intermec kodunu dener ama bu oldukça çöp olur.

Aygıt türünü program aracılığıyla nasıl çalıştırabileceğimi bilen var mı?

cevap

2

Bkz. Bu link. Cihazın OEM bilgilerini almanıza yardımcı olacaktır.

+0

Teşekkür diyoruz, bunu yardımcı oluyorsa denemek ve görmek vereceğiz. –

+0

Mükemmel, bana en azından çalışacak bir şey veriyor gibi görünüyor. –

-1

Bu yerel koddur, ancak benim için çalışır.

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

Ardından, yalnızca hangi aygıtın olduğunu belirlemek için arabelleği ayrıştırın. http://www.christec.co.nz/blog/archives/77

itibaren

+0

origianl sorusu NetCF için açıkça etiketlendi, bu yüzden çok daha fazla kod olmadan çalışmayacak. O zaman bile, ne tür bir cihaz olduğunu söyleyemezsiniz, aksi halde iade edilebilecek şeylerin ana listesi yoksa. – ctacke

0

aşağıdaki kodu kullanın ve 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); 
    } 

}