Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows 10 und GetSystemMetrics(SM_DIGITIZRER) (https://www.delphipraxis.net/185974-windows-10-und-getsystemmetrics-sm_digitizrer.html)

ULIK 23. Jul 2015 08:44

Windows 10 und GetSystemMetrics(SM_DIGITIZRER)
 
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!

Der schöne Günther 23. Jul 2015 08:54

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)
 
Ich habe den Code auf Win10 jetzt nicht debugged, aber
Delphi-Quellcode:
GetSystemMetrics(SM_TABLETPC)
scheint
Delphi-Quellcode:
0
zurückzugeben denn die Ergebnismenge ist leer. Und das meint das Fenster "System" auch. Bei mir also alles in Butter ;-)

PS: Ich benutze VirtualBox, meine aber VmWare war standardmäßig so eingestellt als hätte es Touch, auch wenn der Host-PC kein Touch hat.

ULIK 23. Jul 2015 09:38

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)
 
Das klingt schon mal gut: GetSystemMetrics(SM_TABLETPC) = 0 hätte ich auch auf so einem Gerät erwartet. Dann geh ich mal auf die Suche in den VMWare-Einstellungen :)

edit: das war's, die VM auf Touch eingestellt. Kaum deaktiviert man das, bekommt man die erwarteten Werte.

Rollo62 24. Jul 2015 08:45

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)
 
wo stellt man denn in VmWare ein ob Touch oder nicht ?

Rollo

Der schöne Günther 24. Jul 2015 09:09

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)
 
Scheint keine Option zu geben, man muss wohl das entsprechende (imaginäre) Gerät im Geräte-Manager der VM deaktivieren.

Quelle: http://superuser.com/q/671782

Dalai 24. Jul 2015 12:45

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)
 
In Virtual Machine Settings > Register Options > Guest Isolation > Share sensor input gibt es 3 Häkchen (Orientation, Motion, Ambient Light), die man entfernen kann (VMware Workstation 10). Wobei ich jetzt nicht mehr genau weiß, ob das Deaktivieren dieser drei das Gerät wirklich aus der VM entfernt. Ich hab mittlerweile eine .vmx mit Standardeinstellungen, die ich in jede neue VM kopiere, und dabei wird unter anderem Touch deaktiviert.

MfG Dalai


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz