| |
|
|
- Seite 1 - |
|
Penguin Tux | Hallo,
gibt es irgendeine Möglichkeit, ein Tool für Windows XP/2000 zu schreiben, welches das Tastaturlayout von Deutsch auf Russisch und von Russisch in Deutsch switchen kann? Dazu benötige ich eine einfache GUI, da die Nutzer nicht wirklich viel Ahnung haben werden. Das wichtige ist, dass dabei keine Registryeinträge geändert werden, weil es sonst Konflikte mit der Rechtevergabe im Netzwerk geben könnte.
Danke schonmal für eure Hilfe Tony KompilierenMarkierenSeparierendeclare btndlg&,dlgende%,dlg&
dlg&=Create("Window",%hwnd,"Sprache",10,10,200,120)
Startpaint dlg&
UseFont "CANDARA",25,20,1,0,0
TextColor RGB(0,0,0),RGB(255,255,255)
Endpaint
btnDlg& = CreateButton(dlg&,"Deutsch -> Russisch",30,10,120,30)
btnDlg& = CreateButton(dlg&,"Russisch -> Deutsch",30,45,120,30)
WhileNot dlgende%
WaitInput
If GetFocus(btnDlg&)
dlgende% = 1
EndIf
Endwhile
destroywindow(dlg&)
Die GUI ist, wenn auch nur vom optischen her, fertig. der Code ist mit Sicherheit reinster Müll und man könnte ihn bestimmt auch noch verbessern. Jetzt geht es darum, die richtigen Funktionen zum richtigen Button zu schreiben. |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Penguin Tux | Das könnte natürlich sein. Mache ich das einfach über den UseFont besefehl? |
|
|
| |
|
|
|
Dieter Zornow | Du must über Textdienste und Eingabesprachen russisch dazu nehmen, Windows zeigt dann in der Taskleiste ein Feld an, indem du einfach die Sprachen wechseln kannst auch mit dem dazu gehörenden Font. Es genügt nicht einfach das Tastatur Layout zu wechseln. Mit dem Taskleistentool von Windows geht die Umschaltung einfach und schnell mit einem Klick. Ich mache das mit Deutsch, Englisch und Thai. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 24.09.2008 ▲ |
|
|
|
|
Penguin Tux | Das das mit dem Kästchen funktioniert weiß ich. Es war eben nur die Frage ob das ein Schüler auch ändern kann. |
|
|
| |
|
|
|
Frank Abbing | Mit diesem Code schaltest du schonmal zum nächsten Schema: KompilierenMarkierenSeparieren $H Windows.ph
~keybd_event(18, 0, 0, 0) Alt
~keybd_event(16, 0, 0, 0) Shift
~keybd_event(16, 0, ~KEYEVENTF_KEYUP, 0)
~keybd_event(18, 0, ~KEYEVENTF_KEYUP, 0)
End
|
|
|
| |
|
|
|
Penguin Tux | Danke, aber das hilft mir nur in gewissem Maße weiter. Das Hauptproblem liegt immernoch darin, dass ich diese Schwarzen striche habe. Über UseFont geht es nicht wie ich mittlerweile gemerkt habe. |
|
|
| |
|
|
|
Frank Abbing | |
|
| |
|
|
|
Penguin Tux | Was bleibt mir anderes Übrig als mich zu bedanken?
Danke, für deine Hilfe
Ich frage mich nur gerade wie man solch ein Eingabefeld erstellt. Die Hilfe hat mir nichts gebracht |
|
|
| |
|
|
|
Frank Abbing | Du kannst ein normales Edit, ein Richtextedit oder ein Multiedit verwenden, dazu gibt es in der Hilfe ja viele Beispiele. In meinem Beispiel habe ich ja auch eines erzeugt. |
|
|
| |
|
|
|
Penguin Tux | Ok, das Editfeld ist nun erstellt, das Problem ist nur, dass ich es mit keiner mir einfallenden Funktion schaffe, das beide Felder erzeugt werden.
Hier der Code: KompilierenMarkierenSeparierenWINDOWSTYLE 31
Window 0,0-0,1024
Windowtitle "Deutsch - Russisch"
Window 0,0-%maxx,%maxy
UseIcon "Gesicht"
Eingabe Deutsch
Usefont "Arial",20,0,0,0,0
SetDialogFont 1
$H Windows.ph
Declare Edit&
Cls
Edit& = @Create("MultiEdit",%hWnd,"Deutsch",10,10,1000,320)
WaitKey
End
Eingabe Russisch
Usefont "Arial",20,0,0,0,0
SetDialogFont 1
Def ActivateKeyboardLayout(2)!"USER32","ActivateKeyboardLayout"
Def &VK_FLAGSR 1 Tastenlayout Russisch
Def &VK_FLAGSD 0 Tastenlayout Deutsch
Declare edit&,text$
Cls
edit&=Create("MultiEdit", %hWnd, "", 10, 370, 1000, 320)
ActivateKeyboardLayout(0, &VK_FLAGSR)
While 1
WaitInput
Case %key=2:Break
Endwhile
ActivateKeyboardLayout(0, &VK_FLAGSD)
End
|
|
|
| |
|
|
|
Frank Abbing | Hm, du hast ja mittendrin ein End stehen... KompilierenMarkierenSeparierenDef ActivateKeyboardLayout(2)!"USER32","ActivateKeyboardLayout"
Def &VK_FLAGSR 1 Tastenlayout Russisch
Def &VK_FLAGSD 0 Tastenlayout Deutsch
Declare edit1&,edit2&,text$,x&
WINDOWSTYLE 31
Window 0,0-0,1024
Windowtitle "Deutsch - Russisch"
Window 0,0-%maxx,%maxy
UseIcon "Gesicht"
Usefont "Arial",20,0,0,0,0
SetDialogFont 1
edit1& = @Create("MultiEdit",%hWnd,"Russisch",10,10,1000,320)
edit2&=Create("MultiEdit", %hWnd, "Deutsch", 10, 370, 1000, 320)
While 1
WaitInput
Case %key=2:Break
If %GetFocus=edit1&
ActivateKeyboardLayout(0, &VK_FLAGSR)
ElseIf %GetFocus=edit2&
ActivateKeyboardLayout(0, &VK_FLAGSD)
EndIf
Endwhile
End
|
|
|
| |
|
|
|
Penguin Tux | Nun denn, langsam wird es. Das zweite Feld ist jetzt da, wechsel ich, vom Russischen ins Deutsche, schaltet zwar die Sprache um, aber es Schreibt immernoch in kyrillischer Schrift. Ich muss jede Taste zweimal drücken, damit ich wieder normal schreiben kann.
Ich habe nun beobachtet, dass in beiden Feldern nach jedem Tastendruck das Eingabegebietsschema geändert wird. |
|
|
| |
|
|
|
| @Penguin Kleinigkeit am Rande:
Wenn du WINDOWSTYLE 31 + 512 schreibst, hat das Fenster die Eigenschaften eines Dialog-Fensters und du kannst mit der TAB-Taste zwischen den beiden Eingaben wechseln (TAB-Taste = Iskey(9) ) |
|
|
| |
|
|