|  |  | 
|  | 
|  | 
|  Penguin
 Tux
 | | Ciao, 
 gibt es irgendeine Möglichkeit, ein Tool per 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 potuto.
 
 Danke schonmal per eure Aiuto
 Tony
 KompilierenMarkierenSeparieren
 declare 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&ass=s2>)
Die GUI ist, wenn auch nur vom optischen her, fertig. der Code ist mit Sicherheit reinster Müll und man potuto 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 per die antwort, aber der code selbst ist, per 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 per Russisch - Deutsch. Muss naturalmente 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: KompilierenMarkierenSeparieren
 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, 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 per den russischunterricht per 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 potuto, aber soweit brauch ich erstmal noch nciht denken. 
 per 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 opposto 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?
 KompilierenMarkierenSeparieren
 WINDOWSTYLE 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 Dimensione des Fensters. | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Frank
 Abbing
 | | Du musst wahrscheinlich einen Font verwenden, der auch russische Sonderzeichen enthält? | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 |