Bildschirmtastatureingabe (im Silkroad Einlogfenster)

  • Hey ich hab mir letztens AutoIT ein wenig angesehen und bin grade auf euer Forum gestoßen =)
    Hmm ich hab schon mit meinem ersten kleinem Programm angefangen aber irgendwie funktioniert das nich wirklich -_- Also da ich unter schrecklicher Paranoia leide gebe ich immer wenn ich mich bei SRO einlogge mein Passwort und meine ID mit der Bildschirmtastatur ein wollte es folgendermaßen automatisieren:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ENTER}", "Weiter1")
    GuiCreate("Silkroad-ID",200,130,@Desktopwidth/2 - 100, @Desktopheight/2 - 80, -1 )
    WinSetonTop("Silkroad-ID", "", 1)
    GuiSetFont(10, 800,4)
    GuiCtrlCreateLabel("Geben Sie ihre ID ein!", 10, 10 , 180, 20)
    GuiSetFont(9, 400, 0)
    $Input = GuiCtrlCreateInput("ID-Eingabe",10, 50, 180, 20)
    $Weiter = GuiCtrlCreateButton("Weiter", 75, 90)
    GuiSetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GuiGetMSG()
    Select
    Case $msg = $Weiter
    IF GuiCtrlRead($Input) = "" THEN
    MsgBox(64, "Error", "Die eingegebene ID ist ungültig!",3)
    Else
    $inLen = StringLen(GuiCtrlRead($Input))
    $var = StringSplit(GuiCtrlRead($Input), "")
    GuiSetState(@SW_MINIMIZE)
    ExitLoop
    EndIf
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Weiter1 ()
    ControlClick("Silkroad-ID", "", "Button2")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ENTER}", "Weiter2")

    [/autoit] [autoit][/autoit] [autoit]

    GuiCreate("Silkroad-PW",200,130,@Desktopwidth/2 - 100, @Desktopheight/2 - 80, -1)
    WinSetOnTop("Silkroad-PW", "", 1)
    GuiSetFont(10, 800,4)
    GuiCtrlCreateLabel("Geben Sie ihr PW ein!", 10, 10 , 180, 20)
    GuiSetFont(9, 400, 0)
    $Input2 = GuiCtrlCreateInput("Passwort-Eingabe",10, 50, 180, 20)
    $Zurueck2 = GuiCtrlCreateButton("Zurück", 45, 90)
    $Weiter2 = GuiCtrlCreateButton("Weiter", 105, 90)

    [/autoit] [autoit][/autoit] [autoit]

    GuiSetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GuiGetMSG()
    Select
    Case $msg = $Zurueck2
    ShellExecute("loginbot.exe")
    Case $msg = $Weiter2
    IF GuiCtrlRead($Input2) = "" THEN
    MsgBox(64, "Error", "Die eingegebene ID ist ungültig!",3)
    Else
    $inLen2 = StringLen(GuiCtrlRead($Input2))
    $var2 = StringSplit(GuiCtrlRead($Input2), "")
    GuiSetState(@SW_MINIMIZE)
    ExitLoop
    EndIf
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Weiter2 ()
    ControlClick("Silkroad-PW", "", "Button2")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ShellExecute(@WINDOWSDIR & "\system32\osk.exe")
    sleep(100)

    [/autoit] [autoit][/autoit] [autoit]

    ControlFocus("Bildschirmtastatur", "", "")
    ;sleep(100)
    ;WinMove("Bildschirmtastatur","",1,1)
    ;sleep(100)

    [/autoit] [autoit][/autoit] [autoit]

    $pos = WinGetPos("Bildschirmtastatur")
    sleep(100)
    MouseMove($pos[0], $pos[1])
    sleep(100)
    MouseDown("left")
    sleep(100)
    MouseMove(1,1)
    sleep(100)
    MouseUp("left")
    sleep(100)
    MouseClick("left", 550, 430)
    sleep(100)

    [/autoit] [autoit][/autoit] [autoit]

    DIM $zahl = 0

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $zahl = $zahl + 1
    IF StringIsLower($var[$zahl]) = 1 THEN
    If $var[$zahl] = "" THEN ExitLoop
    IF $var[$zahl] = "a" Then MouseClick("left", 77, 130,1)
    sleep(10)
    If $var[$zahl] = "b" Then MouseClick("left", 195, 154,1)
    sleep(10)
    If $var[$zahl] = "c" Then MouseClick("left", 142,156,1)
    sleep(10)
    If $var[$zahl] = "d" Then MouseClick("left", 130, 131)
    sleep(10)
    If $var[$zahl] = "e" Then MouseClick("left", 117,109)
    sleep(10)
    If $var[$zahl] = "f" Then MouseClick("left", 155,131)
    sleep(10)
    If $var[$zahl] = "g" Then MouseClick("left", 182,132)
    sleep(10)
    If $var[$zahl] = "h" Then MouseClick("left", 210,131)
    sleep(10)
    If $var[$zahl] = "i" Then MouseClick("left", 251,109)
    sleep(10)
    If $var[$zahl] = "j" Then MouseClick("left", 233,130)
    sleep(10)
    If $var[$zahl] = "k" Then MouseClick("left", 262,133)
    sleep(10)
    If $var[$zahl] = "l" Then MouseClick("left", 289,130)
    sleep(10)
    If $var[$zahl] = "m" Then MouseClick("left", 248,154)
    sleep(10)
    If $var[$zahl] = "n" Then MouseClick("left", 220,153)
    sleep(10)
    If $var[$zahl] = "o" Then MouseClick("left", 275,112)
    sleep(10)
    If $var[$zahl] = "p" Then MouseClick("left", 303,110)
    sleep(10)
    If $var[$zahl] = "q" Then MouseClick("left", 66,111)
    sleep(10)
    If $var[$zahl] = "r" Then MouseClick("left", 143,108)
    sleep(10)
    If $var[$zahl] = "s" Then MouseClick("left", 104,133)
    sleep(10)
    If $var[$zahl] = "t" Then MouseClick("left", 168,109)
    sleep(10)
    If $var[$zahl] = "u" Then MouseClick("left", 224,111)
    sleep(10)
    If $var[$zahl] = "v" Then MouseClick("left", 169,154)
    sleep(10)
    If $var[$zahl] = "w" Then MouseClick("left", 91,112)
    sleep(10)
    If $var[$zahl] = "x" Then MouseClick("left", 114,155)
    sleep(10)
    If $var[$zahl] = "y" Then MouseClick("left", 87,155)
    sleep(10)
    If $var[$zahl] = "z" Then MouseClick("left", 198,112)
    sleep(10)
    ElseIF StringIsUpper($var[$zahl]) = 1 THEN
    IF $var[$zahl] = "A" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 77, 130)
    sleep(10)
    EndIF
    If $var[$zahl] = "B" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 195, 154)
    sleep(10)
    Endif
    If $var[$zahl] = "C" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 142,156)
    sleep(10)
    Endif
    If $var[$zahl] = "D" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 130, 131)
    sleep(10)
    Endif
    If $var[$zahl] = "E" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 117,109)
    sleep(10)
    Endif
    If $var[$zahl] = "F" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 155,131)
    sleep(10)
    Endif
    If $var[$zahl] = "G" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 182,132)
    sleep(10)
    Endif
    If $var[$zahl] = "H" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 210,131)
    sleep(10)
    Endif
    If $var[$zahl] = "I" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 251,109)
    sleep(10)
    Endif
    If $var[$zahl] = "J" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 233,130)
    sleep(10)
    Endif
    If $var[$zahl] = "K" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 262,133)
    sleep(10)
    Endif
    If $var[$zahl] = "L" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 289,130)
    sleep(10)
    Endif
    If $var[$zahl] = "M" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 248,154)
    sleep(10)
    Endif
    If $var[$zahl] = "N" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 220,153)
    sleep(10)
    Endif
    If $var[$zahl] = "O" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 275,112)
    sleep(10)
    Endif
    If $var[$zahl] = "P" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 303,110)
    sleep(10)
    Endif
    If $var[$zahl] = "Q" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 66,111)
    sleep(10)
    Endif
    If $var[$zahl] = "R" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 143,108)
    sleep(10)
    Endif
    If $var[$zahl] = "S" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 104,133)
    sleep(10)
    Endif
    If $var[$zahl] = "T" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 168,109)
    sleep(10)
    Endif
    If $var[$zahl] = "U" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 224,111)
    sleep(10)
    Endif
    If $var[$zahl] = "V" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 169,154)
    sleep(10)
    Endif
    If $var[$zahl] = "W" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 91,112)
    sleep(10)
    Endif
    If $var[$zahl] = "X" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 114,155)
    sleep(10)
    Endif
    If $var[$zahl] = "Y" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 87,155)
    sleep(10)
    Endif
    If $var[$zahl] = "Z" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 198,112)
    sleep(10)
    Endif
    ElseIf StringIsDigit($var[$zahl]) THEN
    If $var[$zahl] = "0" Then MouseClick("left", 289,87)
    sleep(10)
    If $var[$zahl] = "1" Then MouseClick("left", 50,87)
    sleep(10)
    If $var[$zahl] = "2" Then MouseClick("left", 77,87)
    sleep(10)
    If $var[$zahl] = "3" Then MouseClick("left", 104,87)
    sleep(10)
    If $var[$zahl] = "4" Then MouseClick("left", 131,87)
    sleep(10)
    If $var[$zahl] = "5" Then MouseClick("left", 158,87)
    sleep(10)
    If $var[$zahl] = "6" Then MouseClick("left", 185,87)
    sleep(10)
    If $var[$zahl] = "7" Then MouseClick("left", 212,87)
    sleep(10)
    If $var[$zahl] = "8" Then MouseClick("left", 239,87)
    sleep(10)
    If $var[$zahl] = "9" Then MouseClick("left", 266,87)
    sleep(10)
    Endif
    Until $zahl = $inLen

    [/autoit] [autoit][/autoit] [autoit]

    sleep(100)
    ;Send("{TAB}")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    DIM $zahl = 0

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $zahl = $zahl + 1
    IF StringIsLower($var2[$zahl]) = 1 THEN
    If $var2[$zahl] = "" THEN ExitLoop
    IF $var2[$zahl] = "a" Then MouseClick("left", 77, 130)
    sleep(10)
    If $var2[$zahl] = "b" Then MouseClick("left", 195, 154)
    sleep(10)
    If $var2[$zahl] = "c" Then MouseClick("left", 142,156)
    sleep(10)
    If $var2[$zahl] = "d" Then MouseClick("left", 130, 131)
    sleep(10)
    If $var2[$zahl] = "e" Then MouseClick("left", 117,109)
    sleep(10)
    If $var2[$zahl] = "f" Then MouseClick("left", 155,131)
    sleep(10)
    If $var2[$zahl] = "g" Then MouseClick("left", 182,132)
    sleep(10)
    If $var2[$zahl] = "h" Then MouseClick("left", 210,131)
    sleep(10)
    If $var2[$zahl] = "i" Then MouseClick("left", 251,109)
    sleep(10)
    If $var2[$zahl] = "j" Then MouseClick("left", 233,130)
    sleep(10)
    If $var2[$zahl] = "k" Then MouseClick("left", 262,133)
    sleep(10)
    If $var2[$zahl] = "l" Then MouseClick("left", 289,130)
    sleep(10)
    If $var2[$zahl] = "m" Then MouseClick("left", 248,154)
    sleep(10)
    If $var2[$zahl] = "n" Then MouseClick("left", 220,153)
    sleep(10)
    If $var2[$zahl] = "o" Then MouseClick("left", 275,112)
    sleep(10)
    If $var2[$zahl] = "p" Then MouseClick("left", 303,110)
    sleep(10)
    If $var2[$zahl] = "q" Then MouseClick("left", 66,111)
    sleep(10)
    If $var2[$zahl] = "r" Then MouseClick("left", 143,108)
    sleep(10)
    If $var2[$zahl] = "s" Then MouseClick("left", 104,133)
    sleep(10)
    If $var2[$zahl] = "t" Then MouseClick("left", 168,109)
    sleep(10)
    If $var2[$zahl] = "u" Then MouseClick("left", 224,111)
    sleep(10)
    If $var2[$zahl] = "v" Then MouseClick("left", 169,154)
    sleep(10)
    If $var2[$zahl] = "w" Then MouseClick("left", 91,112)
    sleep(10)
    If $var2[$zahl] = "x" Then MouseClick("left", 114,155)
    sleep(10)
    If $var2[$zahl] = "y" Then MouseClick("left", 87,155)
    sleep(10)
    If $var2[$zahl] = "z" Then MouseClick("left", 198,112)
    sleep(10)
    ElseIF StringIsUpper($var2[$zahl]) = 1 THEN
    IF $var2[$zahl] = "A" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 77, 130)
    sleep(10)
    EndIF
    If $var2[$zahl] = "B" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 195, 154)
    sleep(10)
    Endif
    If $var2[$zahl] = "C" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 142,156)
    sleep(10)
    Endif
    If $var2[$zahl] = "D" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 130, 131)
    sleep(10)
    Endif
    If $var2[$zahl] = "E" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 117,109)
    sleep(10)
    Endif
    If $var2[$zahl] = "F" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 155,131)
    sleep(10)
    Endif
    If $var2[$zahl] = "G" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 182,132)
    sleep(10)
    Endif
    If $var2[$zahl] = "H" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 210,131)
    sleep(10)
    Endif
    If $var2[$zahl] = "I" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 251,109)
    sleep(10)
    Endif
    If $var2[$zahl] = "J" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 233,130)
    sleep(10)
    Endif
    If $var2[$zahl] = "K" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 262,133)
    sleep(10)
    Endif
    If $var2[$zahl] = "L" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 289,130)
    sleep(10)
    Endif
    If $var2[$zahl] = "M" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 248,154)
    sleep(10)
    Endif
    If $var2[$zahl] = "N" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 220,153)
    sleep(10)
    Endif
    If $var2[$zahl] = "O" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 275,112)
    sleep(10)
    Endif
    If $var2[$zahl] = "P" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 303,110)
    sleep(10)
    Endif
    If $var2[$zahl] = "Q" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 66,111)
    sleep(10)
    Endif
    If $var2[$zahl] = "R" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 143,108)
    sleep(10)
    Endif
    If $var2[$zahl] = "S" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 104,133)
    sleep(10)
    Endif
    If $var2[$zahl] = "T" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 168,109)
    sleep(10)
    Endif
    If $var[$zahl] = "U" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 224,111)
    sleep(10)
    Endif
    If $var2[$zahl] = "V" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 169,154)
    sleep(10)
    Endif
    If $var2[$zahl] = "W" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 91,112)
    sleep(10)
    Endif
    If $var2[$zahl] = "X" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 114,155)
    sleep(10)
    Endif
    If $var[$zahl] = "Y" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 87,155)
    sleep(10)
    Endif
    If $var2[$zahl] = "Z" Then
    MouseClick("left", 40,152)
    sleep(10)
    MouseClick("left", 198,112)
    sleep(10)
    Endif
    ElseIf StringIsDigit($var2[$zahl]) THEN
    If $var2[$zahl] = "0" Then MouseClick("left", 289,87)
    sleep(10)
    If $var2[$zahl] = "1" Then MouseClick("left", 50,87)
    sleep(10)
    If $var2[$zahl] = "2" Then MouseClick("left", 77,87)
    sleep(10)
    If $var2[$zahl] = "3" Then MouseClick("left", 104,87)
    sleep(10)
    If $var2[$zahl] = "4" Then MouseClick("left", 131,87)
    sleep(10)
    If $var2[$zahl] = "5" Then MouseClick("left", 158,87)
    sleep(10)
    If $var2[$zahl] = "6" Then MouseClick("left", 185,87)
    sleep(10)
    If $var2[$zahl] = "7" Then MouseClick("left", 212,87)
    sleep(10)
    If $var2[$zahl] = "8" Then MouseClick("left", 239,87)
    sleep(10)
    If $var2[$zahl] = "9" Then MouseClick("left", 266,87)
    sleep(10)
    Endif
    Until $zahl = $inLen2

    [/autoit] [autoit][/autoit] [autoit]

    WinKill("Bildschirmtastatur")
    sleep(100)
    Send("{ENTER}")

    [/autoit]

    Also bis zur Bildschirmtastatur schaffts mein Programm noch...weiter aber nicht ?(
    Bitte kann mir einer helfen,
    MFG Apfeltasche

    • Offizieller Beitrag

    Hallo,

    Ein paar Punkte:
    - Es kann sein, dass die Bildschirmtastatur von Windows aus nicht fersteuerbar ist, was ich durchaus verstehen könnte. Einige IE-Fenster oder Sicherheitswarnungen werden ähnlich behandelt.
    - Dein Quelltext dürfte sich mit Funktionen oder Arrays wesentlich verkürzen lassen :).
    - Das ist doch keine echte Paranoia :D

    peethebee

  • Wow das war ne schnelle antwort =P ehm ja zuerst hab ich ja versucht die Bildschirmtastatur mit Winmove zu verschieben aber das hat nicht geklappt, aber meine lösung mit mousemove muss doch eigendlich gehen, da man die bildschirmtastatur ja auch so mit der maus verschieben kann =/
    Aber ich hab was witziges rausgefunden: Wenn man wärend des Programms die Start-Taste drückt funktioniert es einwandfrei..jedoch gibt das programm dann meine ID + Passwort in die Suchfunktion in der Startleiste ein, was dann letztendlich doch recht unproduktiv ist... Ich vermute das Controlfocus mein Problem ist und nicht geht ;( also was muss ich am quellcode ändern?