Einzelnen Beitrag anzeigen

Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#1

Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

  Alt 23. Jul 2015, 09:44
Servus,

ich hätte eine kleine Bitte an die Leute, die schon Windows 10 auf einem Gerät installiert haben, das definitiv NICHT Touch-fähig ist: Könnt ihr bitte ausprobieren, was die folgende Funktion dort liefert:

Delphi-Quellcode:
function GetTouchCapabilities : TTouchCapabilities;
 var ADigitizer : integer;
 begin
 result := [];
 // First check if the system is a TabletPC
 if GetSystemMetrics(SM_TABLETPC) <> 0 then begin
   include(result,tcTabletPC);
   if CheckWin32Version(6,1) then begin // If Windows 7, then we can do additional tests on input type
    ADigitizer := GetSystemMetrics(SM_DIGITIZER);
    if ((ADigitizer and NID_INTEGRATED_TOUCH) <> 0) then include(result,tcIntTouch);
    if ((ADigitizer and NID_EXTERNAL_TOUCH) <> 0) then include(result,tcExtTouch);
    if ((ADigitizer and NID_INTEGRATED_PEN) <> 0) then include(result,tcIntPen);
    if ((ADigitizer and NID_EXTERNAL_PEN) <> 0) then include(result,tcExtPen);
    if ((ADigitizer and NID_MULTI_INPUT) <> 0) then include(result,tcMultiTouch);
    if ((ADigitizer and NID_READY) <> 0) then include(result,tcReady);
   end else begin
    // If not Windows7 and TabletPC detected, we asume that it's ready
    include(result,tcReady);
   end;
 end;
 end;
Dieser Code (Quelle: http://stackoverflow.com/questions/1...pc-in-a-delphi) funktioniert eigentlich gut, nur auf meiner Windows 10 Testinstallation liefert er immer, das das Gerät touchfähig wäre (was die VM und der Rechner auf dem sie läuft sicher nicht sind): tcIntTouch, tcMultiTouch sind im Ergebnis.

Ist das bei euch auch so? Wenn ja, wie kann man dann unter Windows 10 wirklich herausfinden, ob Touch-Eingabe verfügbar ist?


Schon mal vielen Dank!
  Mit Zitat antworten Zitat