Linux - Wie Tastendruck an anderes Fenster?
Re: Linux - Wie Tastendruck an anderes Fenster?
@mse: Weisst du eigentlich wie man den richtigen state ermittelt?
Char in A..Z kann's ja nicht sein, weil z.B. bei Schweizer Tastaturen Shift-ä nicht Ä ist sondern à.
Char in A..Z kann's ja nicht sein, weil z.B. bei Schweizer Tastaturen Shift-ä nicht Ä ist sondern à.
-
- Beiträge: 250
- Registriert: Di 16. Dez 2008, 20:13
- OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
- CPU-Target: 32/64Bit
Re: Linux - Wie Tastendruck an anderes Fenster?
Nicht wirklich.theo hat geschrieben:Weisst du eigentlich wie man den richtigen state ermittelt?
mfg _X_
Zuletzt geändert von _X_ am So 16. Mai 2010, 19:41, insgesamt 1-mal geändert.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Linux - Wie Tastendruck an anderes Fenster?
Glaubst du nun, dass es ein Murks ist?
Wird nicht funktionieren da XK_TAB kein string ist.
Die Keykonstanten solltest du etwa so definieren:
Die vollständige Transkribierung findest du in MSEgui lib/common/kernel/i386-linux/mseguiintf.pas.
XFlush gehört nach den XSendEvent(), es sollen ja die aufgelaufenen Kommandos an den Server geschickt werden.
Code: Alles auswählen
SendStringToActiveWindow(5000, XK_TAB)
Die Keykonstanten solltest du etwa so definieren:
Code: Alles auswählen
const
//from keysymdef.h
XK_BackSpace = $FF08; //* back space, back char */
XK_Tab = $FF09;
XK_Linefeed = $FF0A; //* Linefeed, LF */
XK_Clear = $FF0B;
XK_Return = $FF0D; //* Return, enter */
XK_Pause = $FF13; //* Pause, hold */
XK_Scroll_Lock = $FF14;
XK_Sys_Req = $FF15;
XK_Escape = $FF1B;
XK_Delete = $FFFF; //* Delete, rubout */
XFlush gehört nach den XSendEvent(), es sollen ja die aufgelaufenen Kommandos an den Server geschickt werden.
Zuletzt geändert von mse am So 1. Feb 2009, 14:56, insgesamt 1-mal geändert.
-
- Beiträge: 250
- Registriert: Di 16. Dez 2008, 20:13
- OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
- CPU-Target: 32/64Bit
Re: Linux - Wie Tastendruck an anderes Fenster?
Ja ich glaube es, aber ich mach trotzdem weiter.mse hat geschrieben:Glaubst du nun, dass es ein Murks ist?
Re: Linux - Wie Tastendruck an anderes Fenster?
Die sind in keysym.ppmse hat geschrieben: Die Keykonstanten solltest du etwa so definieren:
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Linux - Wie Tastendruck an anderes Fenster?
Das wird vermutlich ziemlich mühsam, ich glaube nicht, dass xlib so etwas wie ein umgekehrtes xlookupstring() bietet. X11 definiert für alle ISOLatin Zeichen keysyms, es kommt also nicht darauf an, wo die Zeichen auf der Tastatur angeordnet sind.theo hat geschrieben:@mse: Weisst du eigentlich wie man den richtigen state ermittelt?
Char in A..Z kann's ja nicht sein, weil z.B. bei Schweizer Tastaturen Shift-ä nicht Ä ist sondern à.
http://tronche.com/gui/x/xlib/input/key ... tml#KeySym
Code: Alles auswählen
A KeySym is an encoding of a symbol on the cap of a key. The set of defined KeySyms includes the ISO Latin character sets (1-4), Katakana, Arabic, Cyrillic, Greek, Technical, Special, Publishing, APL, Hebrew, Thai, Korean and a miscellany of keys found on keyboards (Return, Help, Tab, and so on). To the extent possible, these sets are derived from international standards. In areas where no standards exist, some of these sets are derived from Digital Equipment Corporation standards. The list of defined symbols can be found in X11/keysymdef.h. Unfortunately, some C preprocessors have limits on the number of defined symbols. If you must use KeySyms not in the Latin 1-4, Greek, and miscellaneous classes, you may have to define a symbol for those sets. Most applications usually only include X11/keysym.h, which defines symbols for ISO Latin 1-4, Greek, and miscellaneous.
Re: Linux - Wie Tastendruck an anderes Fenster?
Einverstanden. Ist wahrscheinlich alles irgendwie lösbar, aber es ist auf jeden Fall "a can of worms".mse hat geschrieben: Ich sag ja, es ist ein Murks.
-
- Beiträge: 250
- Registriert: Di 16. Dez 2008, 20:13
- OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
- CPU-Target: 32/64Bit
Re: Linux - Wie Tastendruck an anderes Fenster?
Ich stimme zu.
mfg _X_
mfg _X_
Zuletzt geändert von _X_ am So 16. Mai 2010, 19:40, insgesamt 1-mal geändert.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Linux - Wie Tastendruck an anderes Fenster?
Das stimmt nicht, durch die Wandlung keysym->keycode geht natürlich alle Information ausser der Tastenposition verloren.mse hat geschrieben:X11 definiert für alle ISOLatin Zeichen keysyms, es kommt also nicht darauf an, wo die Zeichen auf der Tastatur angeordnet sind.
Dies habe ich noch gefunden:
http://linux.die.net/man/3/xtestfakekeyevent
Hilft aber auch nicht weiter.
-
- Beiträge: 250
- Registriert: Di 16. Dez 2008, 20:13
- OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
- CPU-Target: 32/64Bit
Re: Linux - Wie Tastendruck an anderes Fenster?
Gibt es eine Möglichkeit das man nur die GTK2 Libs benötigt?
In den Gtk2 units finde ich nämlich nirgends eine display-Variable wie gdk_display.
mgh _X_
In den Gtk2 units finde ich nämlich nirgends eine display-Variable wie gdk_display.
mgh _X_
-
- Beiträge: 250
- Registriert: Di 16. Dez 2008, 20:13
- OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
- CPU-Target: 32/64Bit
Re: Linux - Wie Tastendruck an anderes Fenster?
Ich meine ohne die Packete (Debian Sid) libgtk1.2, libgtk1.2-common, libgtk1.2-dev. Wenn die nicht installiert sind findet er ein paar .so Dateien nicht.
mfg _X_
mfg _X_
Re: Linux - Wie Tastendruck an anderes Fenster?
Dann nimmste halt uses gdk2 und diese Funktion: http://library.gnome.org/devel/gdk/unst ... et-default" onclick="window.open(this.href);return false;
Du solltest dich bei solchen Spezialthemen selber zu orientieren versuchen. Ich weiss das doch alles auch nicht.
Muss ich für dich in den Quellen suchen und Googlen? So kommst du doch auch nicht weiter.
Du solltest dich bei solchen Spezialthemen selber zu orientieren versuchen. Ich weiss das doch alles auch nicht.
Muss ich für dich in den Quellen suchen und Googlen? So kommst du doch auch nicht weiter.
-
- Beiträge: 10
- Registriert: Sa 8. Mai 2010, 14:42
- OS, Lazarus, FPC: WIN 1.4.4 / 1.8.4
- CPU-Target: 64 Bit
Re: Linux - Wie Tastendruck an anderes Fenster?
Hi,
ich habe den Thread nur zum Teil verfolgt. Jedoch zur Frage wie man ein TAB übermittelt, das habe ich mal so gelöst.
Ein CHR(9) ist ein TAB und ein CHR(13) ein Return/Enter.
Ich bin da auch mal dran verzweifelt.
Gruß Cargo_03
ich habe den Thread nur zum Teil verfolgt. Jedoch zur Frage wie man ein TAB übermittelt, das habe ich mal so gelöst.
Code: Alles auswählen
SendKeysToTitle(FensterTitel,Trim(ED_KRABUserName.Text)+CHR(9)+Trim(ED_KRABPasswort.Text)+CHR(13));
Ich bin da auch mal dran verzweifelt.
Gruß Cargo_03
-
- Beiträge: 250
- Registriert: Di 16. Dez 2008, 20:13
- OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
- CPU-Target: 32/64Bit
Re: Linux - Wie Tastendruck an anderes Fenster?
Der Thread ist alt ^^
http://forge.lazarusforum.de/repositori ... eydown.pas" onclick="window.open(this.href);return false;
mfg _X_
http://forge.lazarusforum.de/repositori ... eydown.pas" onclick="window.open(this.href);return false;
mfg _X_