AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

Ein Thema von ULIK · begonnen am 23. Jul 2015 · letzter Beitrag vom 24. Jul 2015
Antwort Antwort
Benutzerbild von ULIK
ULIK

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

Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

  Alt 23. Jul 2015, 08: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
Der schöne Günther

Registriert seit: 6. Mär 2013
6.108 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

  Alt 23. Jul 2015, 08:54
Ich habe den Code auf Win10 jetzt nicht debugged, aber GetSystemMetrics(SM_TABLETPC) scheint 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.
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

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

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

  Alt 23. Jul 2015, 09:38
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.

Geändert von ULIK (23. Jul 2015 um 09:54 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#4

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

  Alt 24. Jul 2015, 08:45
wo stellt man denn in VmWare ein ob Touch oder nicht ?

Rollo
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.108 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

  Alt 24. Jul 2015, 09:09
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
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#6

AW: Windows 10 und GetSystemMetrics(SM_DIGITIZRER)

  Alt 24. Jul 2015, 12:45
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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