Buchstabe in Variable hinzufügen

  • Hallo ich habe nochmal eine Frage

    Ich will eine Passwordabfrage machen die man nicht sieht...sprich das Skript starten automatisch (und unsichtbar) und versteckt bestimmte Dateien und schließt ein paar Processe...nun will ich aber per ispressed (was ich in meiner Autoit Version 3.8 nicht finde auch nicht in der Hilfe) ein Passwort eingeben ohne das ich dafür eine Inputbox benutze (eben unsichtbar).

    1. Ich habe bei meiner Autoit Version ( 3.8.kp) nach der Funktion ispressed gesucht aber nichts gefunden
    2. Mit hotkeyset geht's net da ich ja auch nicht normal tippen können will

    Kann man eigentlich z.B.

    [autoit]

    local = $Basti = 0

    [/autoit]


    Machen und dann im laufe des Skriptes $Basti mit Buchstaben füllen und wenn ja wie?


    Ich hoffe das war jetzt net zu viel aber ich wollte net extra zwei Themen eröffnen :thumbup:
    VG Basti2022

    3 Mal editiert, zuletzt von Basti2022 (3. Juli 2012 um 16:11)

  • Spoiler anzeigen
    [autoit]

    Global $s_String ; Definierst einen leeren String

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

    While True
    For $i = 48 To 90 ; Fragst in einer Schleife nach allen alphanumerischen Zeichen ab
    If _IsPressed (Hex ($i, 2)) Then
    While _IsPressed (Hex ($i, 2))
    Sleep (1)
    WEnd
    $s_String &= Chr ($i) ; Hängst die gedrückte Taste an den bestehenden String an
    ConsoleWrite ($s_String &@CRLF) ; Schreibst diesen in die Konsole
    EndIf
    Next
    WEnd

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

    Func _IsPressed($sHexKey, $vDLL = 'user32.dll')
    ; $hexKey must be the value of one of the keys.
    ; _Is_Key_Pressed will return 0 if the key is not pressed, 1 if it is.
    Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
    If @error Then Return SetError(@error, @extended, False)
    Return BitAND($a_R[0], 0x8000) <> 0
    EndFunc ;==>_IsPressed

    [/autoit]
  • [autoit]

    #include <Misc.au3>
    ProcessClose
    Local $Basti = 0 ; Wenn dann so
    $Basti = "Beispiel" ; Einfach statt Beispiel das nehmen, das du in ddie Variable speichern willst

    [/autoit]


    Ansonsten werde ich aus deinen Sätzen nicht so ganz schlau

    Edit : $var hat mal wieder die Lösung...

  • Danke erstmal!

    Warum geht ispressed bei euch und bei mir nicht?
    Ist meine Version veraltet?

    Wofür ist eigentlich die Funktion ganz unten mit ispressed ist das nicht schon oben abgehandelt??

    Wo kann ich mir den Konsolewrite ansehen oder mit dem Passwort vergleichen?

  • Das, was in die Konsole geschrieben wird, kannst du dir in Scite ansehen, wenn du dein Script von dort aus startest.
    Mit dem Hotkey F5 oder Tools -> Go.

    Alternativ kannst du die Zeile aber auch mit folgender ersetzen:

    [autoit]

    ToolTip ($s_String)

    [/autoit]
  • Aha danke

    Und wie ist das mit consolewrite abfangen oder auslesen?
    Kann ich dort einfach:

    $1234 = consolewrite...
    Msgbox (0,"",$1234)

    Und dann werden mir die bistabil geschriebenen Zeichen angezeigt?

  • In dem Fall würdest du vermutlich nur das in der Variable $1234 stehen haben: The amount of data written.
    "If writing binary, the number of bytes written, if writing text, the number of characters written." (aus der Hilfe)

    Also nur die Anzahl der Buchstaben bzw der Bytes.

    um die Geschriebenen Zeichen zu bekommen musst du einfach nur die Variable die an ConsoleWrite gegeben wird (Also das was geschrieben wird ;D) benutzen, damit hast du doch alles was du brauchst?
    Das wäre im Bsp. von $var die Variable $s_String

  • Hallo zusammen...

    Ich hatte mich vielleicht unklar ausgedrückt...
    Bei dem Beispiel von $var kommen immer Großbuchstaben auch wenn ich klein schreibe.
    Wie kann ich das beheben und woran liegt das??

    Danke

  • In meinem Code werden die Zeichen 48 bis 90 überprüft. Dabei sind 48 bis 57 die Ziffern 0-9 und 65 bis 90 die Großbuchstaben.
    97 bis 122 wären die Kleinbuchstaben.

    Würdest du also auf Kleinbuchstaben prüfen, würdest du immer Kleinbuchstaben bekommen - unabhängig davon, ob du gerade groß oder klein schreibst.
    Mit dieser Methode kannst du einfach nicht beides prüfen (jedenfalls fällt mir nicht wirklich etwas ein).
    Einzige Möglichkeit wäre, wenn du noch abcheckst, ob Shift/Caps gedrückt ist...

    Da diese Exaktheit aber einen fast perfekten Keylogger darstellen würde, bin ich dagegen, in diesem Forum Hilfe dazu anzubieten.