Bildschirmtastatur OSK
Moderator: Moderatoren
Bildschirmtastatur OSK
Hallo Forenmitglieder,
ist es möglich die Windows Bildschirmtatatur (OSK) mittels XBASE++ zu aktivieren und zu deaktivieren (Hintergrund/Vordergrund) . Evtl. möchte ich die Position der Tastatur noch bestimmen.
Ich möchte mittels Touch Monitor bestimmte Eingaben vornehmen. Dabei soll bei betätigen eines SLE die Tastatur an einer bestimmten Position aufgehen.
Ist dies machbar ?
Und wenn ja, wie ?
mfg
mkersch
ist es möglich die Windows Bildschirmtatatur (OSK) mittels XBASE++ zu aktivieren und zu deaktivieren (Hintergrund/Vordergrund) . Evtl. möchte ich die Position der Tastatur noch bestimmen.
Ich möchte mittels Touch Monitor bestimmte Eingaben vornehmen. Dabei soll bei betätigen eines SLE die Tastatur an einer bestimmten Position aufgehen.
Ist dies machbar ?
Und wenn ja, wie ?
mfg
mkersch
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Wie das in VB geht, ist hier erklärt. Dürfte sich auch relativ leicht nach Xbase umsetzen lassen:
http://www.ms-office-forum.net/forum/sh ... p?t=221461
Du müsstest dann allerdings noch dafür sorgen, dass OSK ordentlich beendet wird.
Einfacher ist es, das selbst zu bauen. Geht schließlich nur um einen Haufen Buttons, die Buchstaben in den EditBuffer schubsen. Wenn Du das selbst gestaltest, kannst Du Größe, Position, Skalierung, Umfang und Verhalten selbst bestimmen.
http://www.ms-office-forum.net/forum/sh ... p?t=221461
Du müsstest dann allerdings noch dafür sorgen, dass OSK ordentlich beendet wird.
Einfacher ist es, das selbst zu bauen. Geht schließlich nur um einen Haufen Buttons, die Buchstaben in den EditBuffer schubsen. Wenn Du das selbst gestaltest, kannst Du Größe, Position, Skalierung, Umfang und Verhalten selbst bestimmen.
Herzlich,
Tom
Tom
Re: Bildschirmtastatur OSK
Tom vielen Dank für die Antwort.
Bei einem anderen Projekt habe ich mir bereits eine Num-Eingabe (Dialog) selbst erstellt. Da bei diesem Projekt auch eine Texteingabe nötig ist,
wollte ich eben diesen Aufwand vermeiden und die Standard Bildschirmtastatur verwenden.
Wie es aussieht hat man mit einer selbsterstellten Eingabe die höchste Flexibilität.
mfg.
mkersch
Bei einem anderen Projekt habe ich mir bereits eine Num-Eingabe (Dialog) selbst erstellt. Da bei diesem Projekt auch eine Texteingabe nötig ist,
wollte ich eben diesen Aufwand vermeiden und die Standard Bildschirmtastatur verwenden.
Wie es aussieht hat man mit einer selbsterstellten Eingabe die höchste Flexibilität.
mfg.
mkersch
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Bildschirmtastatur OSK
naja der "Haufen" sind ja > 100 Buttons ... + 100 normale Icons ... + 100 "gedrückte" Icons ... und kann "nur" ASC() und kein DBCS.Tom hat geschrieben:Einfacher ist es, das selbst zu bauen. Geht schließlich nur um einen Haufen Buttons, die Buchstaben in den EditBuffer schubsen. Wenn Du das selbst gestaltest, kannst Du Größe, Position, Skalierung, Umfang und Verhalten selbst bestimmen.
wie der VB Artikel zeigt musst man zunächst mit der API FindWindowA() das Handle des OSK Dialog holen.
damit kannst man dann SW_HIDE / SW_SHOW, SetWindowPos() oder ein "re-Size" durchführen.
durch WM_QUIT kann man dann das externes OSK Fenster beenden.
gruss by OHR
Jimmy
Jimmy
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Hallo Jimmy,
den Handle bekomme ich mit WildFindWindow( "On-Screen Keyboard"), ich glaube mit PostMessageA( nWnd, nwMsg, nwParam, nlParam) kann man dann das Fenster in den Hintergrund oder Vordergrund bringen oder verschieben. Gibt es ein Beispiel irgendwo dafür ?
Grüße
Rudolf
den Handle bekomme ich mit WildFindWindow( "On-Screen Keyboard"), ich glaube mit PostMessageA( nWnd, nwMsg, nwParam, nlParam) kann man dann das Fenster in den Hintergrund oder Vordergrund bringen oder verschieben. Gibt es ein Beispiel irgendwo dafür ?
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Bildschirmtastatur OSK
Rudolf hat geschrieben:, ich glaube mit PostMessageA( nWnd, nwMsg, nwParam, nlParam) kann man dann das Fenster in den Hintergrund oder Vordergrund bringen oder verschieben. Gibt es ein Beispiel irgendwo dafür ?
Code: Alles auswählen
#include "DLL.ch"
DLLFUNCTION ShowWindow( nHwnd, nCmdShow ) USING STDCALL FROM USER32.DLL
DLLFUNCTION BringWindowToTop( nHwnd ) USING STDCALL FROM USER32.DLL
DLLFUNCTION SetForegroundWindow( nHwnd ) USING STDCALL FROM USER32.DLL
gruss by OHR
Jimmy
Jimmy
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Hallo Jimmy,
danke für den Tip, jetzt muss ich nur noch die Position und Größe ändern können. Versuche es mit
DLLFUNCTION SetWindowPos(hWnd,nHWND,X,Y,cx,cy,uFlags) USING STDCALL FROM USER32.DLL
mit den Werten SetWindowPos(nHWnd,1,0,100,500,100,0x0040) tut sich aber nichts, sind vielleicht die uFlags nicht im richtigen Format ?
Ich brauche es um das Fenster je nach Position des aktuellen Gets am Tablet richtig zu Positionieren.
Grüße
Rudolf
danke für den Tip, jetzt muss ich nur noch die Position und Größe ändern können. Versuche es mit
DLLFUNCTION SetWindowPos(hWnd,nHWND,X,Y,cx,cy,uFlags) USING STDCALL FROM USER32.DLL
mit den Werten SetWindowPos(nHWnd,1,0,100,500,100,0x0040) tut sich aber nichts, sind vielleicht die uFlags nicht im richtigen Format ?
Ich brauche es um das Fenster je nach Position des aktuellen Gets am Tablet richtig zu Positionieren.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Bildschirmtastatur OSK
Hallo Rudolf,
ich verwende in Harbour/FW ShellExecute
ShellExecute( 0, 'Open', 'osk.exe' )
Gerade ist bei uns im Forum eine ähnliche Frage.
Ich glaube es sollte so sein, dass sich die Tastatur immer am unteren Bildschirmrand öffnet und dein Fenster dann "scrollt".
Tablet and form style for Windows 8 (desktop ver.)
http://forums.fivetechsupport.com/viewt ... =3&t=25706
mfg
Otto
ich verwende in Harbour/FW ShellExecute
ShellExecute( 0, 'Open', 'osk.exe' )
Gerade ist bei uns im Forum eine ähnliche Frage.
Ich glaube es sollte so sein, dass sich die Tastatur immer am unteren Bildschirmrand öffnet und dein Fenster dann "scrollt".
Tablet and form style for Windows 8 (desktop ver.)
http://forums.fivetechsupport.com/viewt ... =3&t=25706
mfg
Otto
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Hallo Otto,
die Tastatur bleibt dort wo man sie als letztes positioniert hat. Aber ich möchte je nach Postion vom Get entweder oben oder unten anzeigen, damit müsste ich die Tastatur verschieben. Die API Funktion habe ich gefunden, aber leider kenne ich mich mit DLL Aufrufen nicht gut aus. Notfalls mache ich wie eine eigene nach Vorbild von der eXpress++ Version.
Ich möchte auch das digital ink SDK fürs Tablet nutzen. Teilweise funktioniert es schon, nur gibt es noch viele Möglichkeiten wie Attributwahl von Linien etc. Wäre gut wenn jemand ein Tool macht mit dem man alles perfekt nutzen kann, vielleicht ist Pablo interessiert, werde ihn mal anschreiben.
Grüße
Rudolf
die Tastatur bleibt dort wo man sie als letztes positioniert hat. Aber ich möchte je nach Postion vom Get entweder oben oder unten anzeigen, damit müsste ich die Tastatur verschieben. Die API Funktion habe ich gefunden, aber leider kenne ich mich mit DLL Aufrufen nicht gut aus. Notfalls mache ich wie eine eigene nach Vorbild von der eXpress++ Version.
Ich möchte auch das digital ink SDK fürs Tablet nutzen. Teilweise funktioniert es schon, nur gibt es noch viele Möglichkeiten wie Attributwahl von Linien etc. Wäre gut wenn jemand ein Tool macht mit dem man alles perfekt nutzen kann, vielleicht ist Pablo interessiert, werde ihn mal anschreiben.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Bildschirmtastatur OSK
Hallo Rudolf,
Ich vestehe, aber ich glaube es ist nun Stand der Technik (WINDOWS 8, Phone 8 ), dass die Tastatur am unteren Bildschirmrand fixiert ist.
Das Getfeld ist nur markiert.
Wenn du die Tastatur oberhalb anzeigst, dann verdeckst du mit den Händen die Sicht zum Eingabefeld.
mfg
Otto
Ich vestehe, aber ich glaube es ist nun Stand der Technik (WINDOWS 8, Phone 8 ), dass die Tastatur am unteren Bildschirmrand fixiert ist.
Das Getfeld ist nur markiert.
Wenn du die Tastatur oberhalb anzeigst, dann verdeckst du mit den Händen die Sicht zum Eingabefeld.
mfg
Otto
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Hallo Otto,
das geht nur wenn der Text direkt in der virtuellen Tastatur angezeigt wird, so wie im eXpress++ Beispiel. Wenn das Eingabefeld auch unten ist, dann wird es von der Tastatur überdeckt und man sieht nicht was man eingibt, auch wenn die Tastatur teilweise transparent ist. Eine andere Lölsung wäre den Dialog zu scrollen, aber ich glaube das ist komplizierter als die Tastatur wahlweise oben oder unten anzuzeigen.
Grüße
Rudolf
das geht nur wenn der Text direkt in der virtuellen Tastatur angezeigt wird, so wie im eXpress++ Beispiel. Wenn das Eingabefeld auch unten ist, dann wird es von der Tastatur überdeckt und man sieht nicht was man eingibt, auch wenn die Tastatur teilweise transparent ist. Eine andere Lölsung wäre den Dialog zu scrollen, aber ich glaube das ist komplizierter als die Tastatur wahlweise oben oder unten anzuzeigen.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Bildschirmtastatur OSK
Hallo Rudolf,
ich glaube, dass man durch die verschiedenen Bildschirmauflösungen (10", 12", ...) der Geräte in Zukunft gezungen wird,
die Dialoge scrollbar zu machen.
mfg
Otto
ich glaube, dass man durch die verschiedenen Bildschirmauflösungen (10", 12", ...) der Geräte in Zukunft gezungen wird,
die Dialoge scrollbar zu machen.
mfg
Otto
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Hallo Otto,
das ist das nächste Problem mit dem ich kämpfe. Alle Dialoge müssen über Buttons oder breite Scrollbars gescrollt werden können. Auch Umschalten zwischen den Orientierungen wird eine Herausforderung. Ich denke ich mache zwei Dialoge auf Statics mit Gets auf den gleichen Variablen die ich dann wechselweise mit hide verstecke. Bei der Tastatur will ich wegen der autom. Sprachunterstützung bei der Windows Tastatur nicht selbst eine programmieren.
Grüße
Rudolf
das ist das nächste Problem mit dem ich kämpfe. Alle Dialoge müssen über Buttons oder breite Scrollbars gescrollt werden können. Auch Umschalten zwischen den Orientierungen wird eine Herausforderung. Ich denke ich mache zwei Dialoge auf Statics mit Gets auf den gleichen Variablen die ich dann wechselweise mit hide verstecke. Bei der Tastatur will ich wegen der autom. Sprachunterstützung bei der Windows Tastatur nicht selbst eine programmieren.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Bildschirmtastatur OSK
Hallo Rudolf,
das nächste Problem ist, dass osk.exe eine WINDOWS 7 style Tastatur anzeigt.
Der Dialog schaut dann gleich altmodisch aus.
Da wartet viel Arbeit.
Mfg
Otto
das nächste Problem ist, dass osk.exe eine WINDOWS 7 style Tastatur anzeigt.
Der Dialog schaut dann gleich altmodisch aus.
Da wartet viel Arbeit.
Mfg
Otto
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Hallo Otto,
das befürchte ich auch, mit eXpress++ wirds ein wenig einfacher denke ich. Wenn ich Ergebnisse habe, poste ich sie hier. Habe auch Pablo angeschrieben ob er etwas dazu beitragen kann.
Grüße
Rudolf
das befürchte ich auch, mit eXpress++ wirds ein wenig einfacher denke ich. Wenn ich Ergebnisse habe, poste ich sie hier. Habe auch Pablo angeschrieben ob er etwas dazu beitragen kann.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Bildschirmtastatur OSK
wenn du ihm ein Tablet PC schickst ...Rudolf hat geschrieben:Habe auch Pablo angeschrieben ob er etwas dazu beitragen kann.
ich verwende es soRudolf hat geschrieben:Code: Alles auswählen
DLLFUNCTION SetWindowPos(hWnd,nHWND,X,Y,cx,cy,uFlags) USING STDCALL FROM USER32.DLL
Code: Alles auswählen
rc := {0,0,0,0}
@user32:GetClientRect(hWnd,@rc)
@user32:SetWindowPos(hwnd,;
HWND_TOP,;
0,0,rc[3],rc[4],;
nOr(SWP_NOACTIVATE,SWP_NOCOPYBITS,SWP_NOREPOSITION,SWP_NOSENDCHANGING,SWP_NOZORDER) )
gruss by OHR
Jimmy
Jimmy
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Bildschirmtastatur OSK
Hallo,
danke für die Tips, funktioniert soweit ganz gut fürs Erste. Jetzt werde ich mich dem Scrollen und der Schrifterkennung widmen.
Grüße
Rudolf
danke für die Tips, funktioniert soweit ganz gut fürs Erste. Jetzt werde ich mich dem Scrollen und der Schrifterkennung widmen.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
-
- Rekursionen-Architekt
- Beiträge: 162
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
- Danksagung erhalten: 1 Mal
Re: Bildschirmtastatur OSK
Hallo
Ich habe aktuell das Problem das ich eine Bildschirmtastatur einblenden und auch wieder ausblenden muss.
FreeVk.exe ist eine eigenständige Touchtastatur.
Allerdings habe ich wenig Erfahrung wie man damit umgeht.
Mit runshell könnte ich die Applikation starten. Die wäre dann auch im Vordergrund.
Aber wie bekomme ich den Handle auf diese Applikation um dieser die Nachricht zum schließen zu schicken.
Hat jemand einen kurzen Code wie man das realisiert. Sicherlich keine große Sache.
Danke
Bernd
Ich habe aktuell das Problem das ich eine Bildschirmtastatur einblenden und auch wieder ausblenden muss.
FreeVk.exe ist eine eigenständige Touchtastatur.
Allerdings habe ich wenig Erfahrung wie man damit umgeht.
Mit runshell könnte ich die Applikation starten. Die wäre dann auch im Vordergrund.
Aber wie bekomme ich den Handle auf diese Applikation um dieser die Nachricht zum schließen zu schicken.
Hat jemand einen kurzen Code wie man das realisiert. Sicherlich keine große Sache.
Danke
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Bildschirmtastatur OSK
wenn du meinst ...Bernd Reinhardt hat geschrieben: ↑Mo, 02. Okt 2017 23:17 Hat jemand einen kurzen Code wie man das realisiert. Sicherlich keine große Sache.
hier paar nützliche Links
"ShowWindow" / "ShowWindowAsync" function
https://msdn.microsoft.com/de-de/librar ... s.85).aspx
https://msdn.microsoft.com/de-de/librar ... s.85).aspx
"FindWindow" / "FindWindowEx" function
https://msdn.microsoft.com/de-de/librar ... s.85).aspx
https://msdn.microsoft.com/de-de/librar ... s.85).aspx
p.s. wenn Windows 10 dann sollte man sich diesen Thread ansehen
viewtopic.php?f=20&t=8942&p=100772
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 162
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
- Danksagung erhalten: 1 Mal
Re: Bildschirmtastatur OSK
Hallo
Ich hab mir meine eigene Tastatur gemacht. Da ich keine Sondertasten (Windows, STRG usw.) benötige, sondern nur die Eingabe, war ich schnell fertig und kann das Layout anpassen (franz. Zeichen, nur spezielle Sonderzeichen). Große Buttons.
War im nachhinein gesehen keine großer Aufwand.
Gruß
Bernd
Ich hab mir meine eigene Tastatur gemacht. Da ich keine Sondertasten (Windows, STRG usw.) benötige, sondern nur die Eingabe, war ich schnell fertig und kann das Layout anpassen (franz. Zeichen, nur spezielle Sonderzeichen). Große Buttons.
War im nachhinein gesehen keine großer Aufwand.
Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Bildschirmtastatur OSK
wollte ich auch mal machen aber schon 102 Bitmaps zu "malen" schien mir mit Xbase++ zu langsam zu sein.
unter Windows 10 gibt es, wenn die Table PC Komponenten installiert sind, noch weitere Keyboards z.b. geteilt links/rechts am Rand. die sind so angeordnet das man die mit die Daumen bedienen kann wenn man das Tablet mit beiden Händen hält.
... dummerweise "weiss" die Hard/Software nicht "wann" ich beide Hände benutze
gruss by OHR
Jimmy
Jimmy