Einzelnen Beitrag anzeigen

t.roller
(Gast)

n/a Beiträge
 
#9

AW: Wie erkennen, ob physikalische Tastatur vorhanden

  Alt 5. Nov 2016, 07:01
Ich habe ein Netbook mit Touchscreen UND Tastatur.
Zusätzlich kann ich OSK.exe (BILDSCHIRMTASTATUR) aufrufen.

Einem Programm muss es gleichgültig sein, woher die Eingaben kommen. Wenn es aktiv ist bekommt es die Eingaben.

Wenn ich auf der Tastatur STRG drücke und loslasse erscheint das Gleiche auf der BILDSCHIRMTASTATUR.
Wenn ich auf der BILDSCHIRMTASTATUR die STRG-Taste drücke, bleibt die Taste gedrückt, bis ich nocheinmal die STRG-Taste drücke - egal wo.

Was hat das jetzt mit dem Ganzbild-Modus zu tun?
Die BILDSCHIRMTASTATUR kann ich doch verschieben, wenn sie stört.
Wenn eine Eingabe gebraucht wird, kommt doch automatisch die BILDSCHIRMTASTATUR, wenn das Betriebssystem keine physikalische Tastatur entdeckt.
Leider kommt nach der frischen Installation des BS automatisch immer die BILDSCHIRMTASTATUR, auch wenn eine physikalische Tastatur vorhanden ist, aber das lässt sich ändern.
Entscheidend ist offensichtlich die Tatsache, ob ein TOUCHSCREEN vorhanden ist.

TABLET-PC?

In neuen DELPHI-Versionen gibt es TTouchKeyboard.

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;

Geändert von t.roller ( 5. Nov 2016 um 07:39 Uhr)
  Mit Zitat antworten Zitat