AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie erkennen, ob physikalische Tastatur vorhanden
Thema durchsuchen
Ansicht
Themen-Optionen

Wie erkennen, ob physikalische Tastatur vorhanden

Ein Thema von ULIK · begonnen am 4. Nov 2016 · letzter Beitrag vom 5. Nov 2016
 
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
 


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:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz