wie kann ich einen bestimmten bereich in die Zwischenablage kopieren?

  • Hallo liebe AutoIT :rock: Rocker :rock: ,

    ich habe ein Edit Feld und möchte gern wie in dem Programm "Keepass" auf Knopfdruck erste den Usernamen und dann mit einem TAB weiter das Passwort und dann einen TAB weiter ENTER drücken!
    So wird mein Edit Feld gefüllt: Der Username und das Passwort unterscheiden sich immer wieder!

    Schema: XXXXX-SuperUserPool
    username: XXXXXXXXXX
    Password: YYYYYYYYY
    Valid until: 23/03/2012 22:40:00

    Habt Ihr eine Idee wie ich das bewerkstelligen könnte?
    Vielen Dank und beste grüße bereits jetzt schon.

    dabronko1

    3 Mal editiert, zuletzt von dabronko1 (23. März 2012 um 03:11)

  • Hi, mir geht es darum wie ich in dem textblock:
    Schema: XXXXX-SuperUserPool
    username: XXXXXXXXXX
    Password: YYYYYYYYY
    Valid until: 23/03/2012 22:40:00

    nur den usernamen und nur das passwort extrahiere!

  • hö, also sowas oder wie?

    [autoit]

    $sString = "Schema: XXXXX-SuperUserPool" & @CRLF & _
    "username: XXXXXXXXXX" & @CRLF & _
    "Password: YYYYYYYYY" & @CRLF & _
    "Valid until: 23/03/2012 22:40:00" & @CRLF

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

    $aStringRegEx = StringRegExp($sString, "(?i)username\: (.+?)[\r\n]|password\: (.+?)[\r\n]", 3)
    MsgBox(0, "", "Username: " & $aStringRegEx[0] & @CRLF & "Password: " & $aStringRegEx[2])

    [/autoit]

    (Bei mir geht neuerdings komischerweise das "$" Zeichen nicht mehr, deswegen benützt ich "[\r\n]", ich frag mich nur warum??)

  • (Bei mir geht neuerdings komischerweise das "$" Zeichen nicht mehr, deswegen benützt ich "[\r\n]", ich frag mich nur warum??)

    Bei mir ging das noch nie :D
    Aber ich hab da immer Alternativen gefunden. (Mit anderen RegEx)

  • mhh also so klappts dann auch, aber ich musste eigentlich bisher nie das "(?m)" davor setzten...

    Spoiler anzeigen
    [autoit]

    $sString = "Schema: XXXXX-SuperUserPool" & @CRLF & _
    "username: XXXXXXXXXX" & @CRLF & _
    "Password: YYYYYYYYY" & @CRLF & _
    "Valid until: 23/03/2012 22:40:00" & @CRLF

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

    $aStringRegEx = StringRegExp($sString, "(?m)(?i)username\: (.+?)$|password\: (.+?)$", 3)
    MsgBox(0, "", "Username: " & $aStringRegEx[0] & @CRLF & "Password: " & $aStringRegEx[2])

    [/autoit]

    EDIT: Leider matcht "$" den Carriage return iwie nicht, d.h. das ist dann auch im Ergebnis drinn... Die erste Lösung wäre dann doch besser...

    Zitat

    You just keep on trying 'till you run out of cake. ;)


    [STEAM] Source UDF

    Einmal editiert, zuletzt von K4z (18. März 2012 um 12:00)

  • Hi Leutz,

    das sieht schonmal sehr gut aus!
    Jetzt habe ich die Daten:

    [autoit]

    $sString = "Schema: XXXXX-SuperUserPool" & @CRLF & _
    "username: XXXXXXXXXX" & @CRLF & _
    "Password: YYYYYYYYY" & @CRLF & _
    "Valid until: 23/03/2012 22:40:00" & @CRLF

    [/autoit]

    allerdings in einem EDIT Feld liegen, und dachte mir das ich einfach nur folgendes schrieben muss;

    [autoit]

    $sString = $npw1

    [/autoit]

    leider funzt das nicht so richtig und ich bekomme eine Fehlermeldung: Subscript used with non-Array variable.
    Wie kannich das Lösen?

    Vielen schon Dank schon jetzt


    Gruß
    dabronko1

  • [autoit]

    $sString = $npw1

    [/autoit]


    Keine Ahnung was hier passieren soll.
    Wenn es ein von dir im GUI erstelltes Edit Feld ist, kannst du es mit

    [autoit]

    GUICtrlRead($edit)

    [/autoit]


    auslesen.
    Wenn du von einem fremden Programm das Edit Feld auslesen willst, kanst du

    [autoit]

    ControlGetText()

    [/autoit]


    benutzen.

    LG OIS

  • Super, vielen Dank, das habe ich gesucht!

    Funktioniert Wunderbar! Ziel des ganzen ist es den usernamen und das Passwort per BUTTON in die Zeile USERNAME und PASSWORT eintragen zu lassen und danach enter zu drücken!
    Ich muss aus einem Passwort Pool immer neu generierte Passwörter abrufen und kann mir so nicht am Tag 20 Passwörter merken.
    Jetzt kann ich diese 6 stunden Passwörter zwischenspeichern und per BUTTON mich einloggen!

    Vielen Dank an alle

    Gruß
    dabronko1

    p.s.
    so sieht es dann aus:

    [autoit]

    If $nMsg=$PWB1 Then
    $sString1 = GUICtrlRead($npw1)
    $aStringRegEx1 = StringRegExp($sString1, "(?i)Username\: (.+?)[\r\n]|Password\: (.+?)[\r\n]", 3)
    Send("{ALT DOWN}")
    Send("{TAB}")
    Send("{ALT UP}")
    Send($aStringRegEx1[0])
    Send("{TAB}")
    Send($aStringRegEx1[2])
    Send("{ENTER}")
    EndIf

    [/autoit]

    Einmal editiert, zuletzt von dabronko1 (20. März 2012 um 02:16)

  • Hallo nochmal,

    ein Sache habe ich noch dazu, wenn jetzt nicht genau diese werte ausgelesen werden können kommt logischerweise eiene Fehlermeldung.
    Mir fehlt gerade der gedanke, wie ich diese mit einer MSGBOX umgehen kann!

    [autoit]

    If $nMsg=$PWB1 Then
    $sString1 = GUICtrlRead($npw1)
    $aStringRegEx1 = StringRegExp($sString1, "(?i)Username\: (.+?)[\r\n]|Password\: (.+?)[\r\n]", 3)
    Send("{ALT DOWN}")
    Send("{TAB}")
    Send("{ALT UP}")
    Send($aStringRegEx1[0])
    Send("{TAB}")
    Send($aStringRegEx1[2])
    Send("{ENTER}")
    EndIf

    [/autoit]

    Also wenn jetzt nichts im EDIT steht oder ein schreibfehler(warum auch immer) sich einschleichen sollte möchte ich gern eine einfache MSGBOX.
    z.B.

    [autoit]

    ElseIf $sString1 = <> Or ERROR Then
    MsgBox(1, "TITLE", "Please insert your Text in the following Format:"& @CRLF & _
    & @CRLF & _
    "Schema: XXXXX-SuperUserPool" & @CRLF & _
    "username: XXXXXXXXXX" & @CRLF & _
    "Password: YYYYYYYYY" & @CRLF & _
    "Valid until: XX/XX/XXX XX:XX:XX" & @CRLF
    EndIf

    [/autoit]

    Vielen Dank an Euch

    Gruß
    dabronko1

  • Morgen, hast du standardisierte Werte? Z.B. den Usernamen dieser unterliegt meist einer Namenskonvention somit muss er z.b. immer genau 8 Zeichen lang sein oder so auf dass könntest du Prüfen , du könntest Prüfen ob der Username unerlaubte Zeichen enthält wie (§,$,%,@.....) , das Passwort ist schwer zu Prüfen, meist ist eine Mindestpasswortlänge vorgegeben, darauf könnteste du Prüfen..

    Gruß Marvin

  • @Protex: Ich glaub, er möchte doch einfach nur prüfen, ob das Gesamtschema umgefähr stimmt.
    Das kannst du ja einfach mit ner RegExp davor prüfen, die du dir halt zusammenbasteln musst...
    Ich habs ma schnell probiert, aber ist relativ unschön, du kannst es ja noch gescheit nach deinen Bedürfnissen anpassen...

    Spoiler anzeigen
    [autoit]

    If $nMsg=$PWB1 Then
    $sString1 = GUICtrlRead($npw1)
    If Not StringRegExp($sString1, "(?i)schema\: .+?-(?-i)SuperUserPool(?i)[\r\n]+username\: .+?[\r\n]+password\: .+?[\r\n]+valid until\: \d{2}\/\d{2}\/\d{4} \d{2}\:\d{2}\:\d{2}") Then
    MsgBox(1, "TITLE", "Please insert your Text in the following Format:"& @CRLF & @CRLF & _
    "Schema: XXXXX-SuperUserPool" & @CRLF & _
    "username: XXXXXXXXXX" & @CRLF & _
    "Password: YYYYYYYYY" & @CRLF & _
    "Valid until: XX/XX/XXX XX:XX:XX" & @CRLF)
    Exit
    EndIf
    $aStringRegEx1 = StringRegExp($sString1, "(?i)Username\: (.+?)[\r\n]|Password\: (.+?)[\r\n]", 3)
    Send("{ALT DOWN}")
    Send("{TAB}")
    Send("{ALT UP}")
    Send($aStringRegEx1[0])
    Send("{TAB}")
    Send($aStringRegEx1[2])
    Send("{ENTER}")
    EndIf

    [/autoit]
    Zitat

    You just keep on trying 'till you run out of cake. ;)


    [STEAM] Source UDF

    2 Mal editiert, zuletzt von K4z (21. März 2012 um 13:43)