| |
|
|
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. |
|
|
| |
|
|
|
Frank Abbing | Wenn mich nicht alles täuscht, sollte das mit der API ActivateKeyboardLayout() gehen. Hier ein Beispiel in VB, ebenfalls eine Deutsch/Russisch-Umschaltung: [...] |
|
|
| |
|
|
|
Penguin Tux | danke für die antwort, aber der code selbst ist, für mich, doch sehr undurchsichtig. eine kleine erklärung were nett.
man möge mich schlagen steht ja alles da, nur nicht ganz so wie ich es brauche. aber mit bisschen logischem denken wird das was. |
|
|
| |
|
|
|
| In der Anlage ist ein Tastatur-Treiber für Russisch - Deutsch. Muss natürlich installiert werden:
Installation:
Das Zip-Packet "tastatur_russ_dt.zip" entpacken. Auf Russ-dt.msi doppelklicken. Die Treiber werden installiert. Nach der Installation müssen sie ausgewählt werden:
Start/Einstellungen/Systemsteuerung/Regions- und Sprachoptionen-> Sprachen -> Details
Hoffe, ich konnte helfen ;) |
|
|
| |
|
|
|
Penguin Tux | es liegt ja nicht an den treibern, sondern an dem wechsel zwischen beiden sprachen.
nach dem ich mir den code angeguckt habe, habe ich gemerkt, dass ich gar nichts damit anfangen kann :--/ KompilierenMarkierenSeparieren |
|
|
| |
|
|
|
Frank Abbing | Probier das mal, gibt Text ein in das Editfeld: KompilierenMarkierenSeparierenDef 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, 10, 200, 200)
ActivateKeyboardLayout(0, &VK_FLAGSR)
While 1
WaitInput
Case %key=2:Break
Endwhile
ActivateKeyboardLayout(0, &VK_FLAGSD)
End
|
|
|
| |
|
|
|
Penguin Tux | soeben schoss mir die morgendliche idee, einfach programm für den russischunterricht für den es genutzt werden soll zu schreiben. ein feld fürs deutsche schreiben, eins fürs russische. es wäre evtl. nicht ganz schlecht wenn man das ganze dann noch formatieren und drucken könnte, aber soweit brauch ich erstmal noch nciht denken.
für dies vorhaben würde sich nämlich auch der erste code eignen, da man ja dann russisch schreibt, wenn feld x den fokus hat. heute nachmittag werd ich mich mal ransetzen. |
|
|
| |
|
|
|
Frank Abbing | Mir ist jetzt nicht klar geworden, ob die Lösung mittels ActivateKeyboardLayout() funktioniert oder nicht. Da ich selber nur Deutsch installiert habe, kann ich es ja nicht wirklich testen. Wäre also nur fair gegenüber zukünftigen Mitlesern das hier mal mitzuteilen.
P.S.: Bitte nicht deinen gesamten Text hier kleinschreiben. Was in einen Chat in Ordnung geht, macht einen Forumseintrag aber schlechter lesbar. |
|
|
| |
|
|
|
Penguin Tux | Noch weiß ich nicht ob der Code funktioniert hat, weil ich noch nicht angefangen. Ich muss nebenbei noch Schule machen und eine Linuxkiste zum laufen bringen, also übe dich in Geduld
So. Fakt ist, dass er beim Schreiben in das Textfeld auf Russisch umschaltet. Nur gibt es da das Problem, dass man nur schwarze Schtriche und keine kyrillischen Buchstaben sieht.
Mit KompilierenMarkierenSeparieren kann ich das Fenster ja schon maximiert öffnen lassen. Nur, wo kommt der Befehl hin und wie muss ihn deklarieren? KompilierenMarkierenSeparierenWINDOWSTYLE 31
Window 0,0-0,1024
Windowtitle "Russisch"
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, 10, 1000, 700)
ActivateKeyboardLayout(0, &VK_FLAGSR)
While 1
WaitInput
Case %key=2:Break
Endwhile
ActivateKeyboardLayout(0, &VK_FLAGSD)
End
|
|
|
| |
|
|
|
Frank Abbing | Lass dich nicht treiben. Ich war nur nicht recht schlau aus deinen letzten Posting geworden.
Gibt es einen Befehl, mit dem man das Febster schon maximiert öffnen kann?
Das Hauptfenster? Probier mal: Window 0,0-%maxx,%maxy anstelle von Cls. |
|
|
| |
|
|
|
Penguin Tux | Danke dir. Ist zwar nicht ganz maximiert, erscheint aber in der von mir eingestellten Größe des Fensters. |
|
|
| |
|
|
|
Frank Abbing | Du musst wahrscheinlich einen Font verwenden, der auch russische Sonderzeichen enthält? |
|
|
| |
|
|