Gerät, wer bist Du? (für Geräte ohne Typenschild)
Wenn unterschiedliche Geräte unterschiedliche Ausstattungen besitzen, man aber auf die speziellen Eigenschaften eines Gerätes zugreifen möchte, ist guter Rat teuer. eVB hat keine Möglichkeit, das Gerät zu fragen. Die API kann's:
Deklarationsteil:
| Public Const
SPI_GETOEMINFO = 258 Public Declare Function SystemParametersInfo Lib "Coredll.dll" Alias "SystemParametersInfoW" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long |
Zugegeben, ich habe etwas daran herumgeschraubt. Darin liegt dummerweise aber auch eine Gefahr: die Funktion "SystemParametersInfo" ist ein Verteiler für viele Systemfunktionen. In der aktuellen Definition werden nicht alle Funktionen abfragbar sein. Deshalb: Bei weiterer Verwendung u.U. eine zweite Definition mit anderm Aufrufnamen und geänderter Parameterliste generieren!
.und hier die Beispielfunktion die den Gerätetyp anzeigt:
| Private Sub Command1_Click() Dim strOEM As String strOEM = Space(128) SystemParametersInfo SPI_GETOEMINFO, 128, strOEM, 0 MsgBox strOEM End Sub |
Die Geräteinformation wird von der Funktion in des anfangs erzeugten String "gepatcht". Beim Compaq 3100 kommt die Meldung "Compaq H3100", beim PocketPC-Emulator erhält man ein vielsagendes nichts, beim PocketPC2002-Emulator immerhin noch "CEPC" zurück.