1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Pace17881

Beiträge von Pace17881

  • Status von Edit Control bestimmen

    • Pace17881
    • 30. Juli 2014 um 16:28

    Hat noch jemand eine Idee?

  • Status von Edit Control bestimmen

    • Pace17881
    • 24. Juli 2014 um 16:33

    Funktioniert leider nicht :(
    Es wird immer "not Readonly" ausgespuckt. Egal ob es nun ReadOnly ist oder nicht.

    Folgendes steht in Variable $iStyle: Debug(24) : $iStyle = 1342178176

  • Status von Edit Control bestimmen

    • Pace17881
    • 24. Juli 2014 um 16:18

    Hallo,

    Ich habe eine Autoit-fremde GUI in der befinden sich Buttons/Edits
    Für Buttons ermittle ich den Status(Enabled/Disabled) über Controlcommand.
    Das klappt auch problemlos.

    Aber nicht bei Edit Controls.
    Leider ist mein letzter Thread zu dem Thema nicht mehr vorhanden. Darin wurde erwähnt ob ich nicht eher den ReadOnly Status ermitteln möchte.

    Nun die Frage, Wie ermittle ich bei einem Edit Control ob es ausgegraut ist oder nicht?

    Vielen Dank schon mal für eure Hilfe

    Grüße
    Sebastian

  • Prüfen ob Child Fenster geladen

    • Pace17881
    • 14. Mai 2014 um 16:22

    Werde ich mal probieren und melden wenn es nicht klappt

    Gesendet von meinem C6903 mit Tapatalk

  • Prüfen ob Child Fenster geladen

    • Pace17881
    • 14. Mai 2014 um 09:10

    Hallo zusammen,

    Ich habe eine GUI in der ich ein Fenster aufrufe. Jedoch hat dies eine unterschiedliche Ladezeit. Ich habe schon versucht verschiedene Elemente auf Vorhandensein geprüft. Jedoch sind die oft eher das als der Rest der GUI. Den Maus Zeiger hatte ich ebenso probiert. Jedoch wechselt der mehrfach zwischen SandUhr und normal hin und her.

    Hat jemand da eine Idee ohne Sleep einzusetzen?

    Gesendet von meinem C6903 mit Tapatalk

  • Fenster über ständig sich ändernde Class Name ansprechen

    • Pace17881
    • 5. Mai 2014 um 14:19

    Hi,

    Danke für die Lösung :D

    Regex gehört nicht wirklich zu meinen Lieblingsfunktionen. Aber ich hab wohl keine Wahl ;)

    Danke auch für die Erklärung und den verlinkten Beitrag...

  • Fenster über ständig sich ändernde Class Name ansprechen

    • Pace17881
    • 5. Mai 2014 um 13:37

    Hallo zusammen,

    ich frag in einen Programm ab ob sich ein bestimmtes Fenster öffnet. Über Title ist das gar kein Problem. Jedoch gibt es mehrere die so heißen, aber unterschiedliche Informationen enthalten. Über Text kann ich auch nicht suchen. Daher nutze ich die Möglichkeit über den CLASS NAME.

    Jedoch ändert sich der CLASS NAME bei jedem Programmstart. Ich weiß jedoch nicht nach welchem System.
    Die Klasse lautet in der Regel "[CLASS:WindowsForms10.Window.8.app]"
    Nach "app" kommt dann noch eine Zahlenkolonne ohne erkennbares System.

    Wie könnte ich denn nur nach "WindowsForms10.Window.8.app" suchen?

    Vielen Dank schon mal
    Grüße
    Sebastian

  • Welche Schleife ist sinnvoll?

    • Pace17881
    • 12. April 2014 um 14:45

    Habs übernommen. Danke :thumbup:

  • Welche Schleife ist sinnvoll?

    • Pace17881
    • 12. April 2014 um 13:47

    Hallo zusammen,

    in meinem Skript ist eine Funktion, die ein Programm überwacht, ob es Messageboxen öffnet.
    Je nach Titel der Messagbox wird dann eine Aktion ausgeführt.
    Ich benutze bisher eine While Schleife und frage mich, ob es noch besser geht. Denn im Schleifenkopf stehen insgesamt 7 Sachen die geprüft müssen. Denn ich habe 7 Messagebox-Titel in ein Array die beim durchlaufen natürlich allesamt geprüft werden müssen.

    Hier mal die Funktion:

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

    Func checkOpenMessages()
    Local $msgBoxArr[7] = ["Titel1", "Titel2", "Titel3", "Titel4", "Titel5", "Titel6, "Titel7"]
    Local $msgBoxText[4] = ["Text1", "Text2", "Text3"]
    Local $returnValue = 1
    Sleep(200)
    While WinExists($msgBoxArr[0]) = 1 Or WinExists($msgBoxArr[1]) = 1 Or WinExists($msgBoxArr[2]) = 1 Or WinExists($msgBoxArr[3]) = 1 Or WinExists($msgBoxArr[4]) = 1 Or WinExists($msgBoxArr[5]) = 1 Or WinExists($msgBoxArr[6]) = 1
    For $i = 0 To UBound($msgBoxArr) - 1
    WinActivate($msgBoxArr[$i])
    Select
    Case StringLeft(ControlGetText($msgBoxArr[$i], "", "[CLASS:Static; INSTANCE:3]"), StringLen($msgBoxText[0])) = $msgBoxText[0]
    ControlClick($msgBoxArr[$i], "", "[CLASS:Button; INSTANCE:2]");Klick Nein an
    $returnValue = -1
    Case StringLeft(ControlGetText($msgBoxArr[$i], "", "[CLASS:Static; INSTANCE:3]"), StringLen($msgBoxText[1])) = $msgBoxText[1]
    ControlClick($msgBoxArr[$i], "", "[CLASS:Button; INSTANCE:1]");Klick OK
    $returnValue = 1
    Case StringLeft(ControlGetText($msgBoxArr[$i], "", "[CLASS:Static; INSTANCE:3]"), StringLen($msgBoxText[2])) = $msgBoxText[2]
    ControlClick($msgBoxArr[$i], "", "[CLASS:Button; INSTANCE:1]");Klick OK
    $returnValue = -1
    Case StringLeft(ControlGetText($msgBoxArr[$i], "", "[CLASS:Static; INSTANCE:3]"), StringLen($msgBoxText[3])) = $msgBoxText[3]
    ControlClick($msgBoxArr[$i], "", "[CLASS:Button; INSTANCE:1]");Klick OK
    $returnValue = -1
    Case Else
    ControlClick($msgBoxArr[$i], "", "[CLASS:Button; INSTANCE:1]")
    $returnValue = 1
    EndSelect
    WinWaitClose($msgBoxArr[$i], "", 3000)
    Next
    WEnd
    Return $returnValue
    EndFunc ;==>checkOpenMessages

    [/autoit]

    Wie könnte ich die While Schleife vereinfachen? Funktionieren tut es auch so. Aber ich glaube es geht besser...

    Vielen Dank schon mal

    Grüße
    Sebastian

  • Autoit SSH per Plink

    • Pace17881
    • 11. März 2014 um 15:42

    Hat jemand einen kleinen Hinweis wegen den Tastenkombinationen "Enter" und "STRG+C" ?

  • Autoit SSH per Plink

    • Pace17881
    • 7. März 2014 um 16:22

    Hallo Schnitzel :)

    vielen Dank erst mal für die Antwort.

    Den Plink Wrapper habe ich schon gesehen und nutze den auch jetzt. Mein Skript ist dahingehend angepasst.

    Nur mit dem senden von Befehlen klappts noch nicht. Wie übermittle ich denn "Enter" oder "Strg+C"

    Hier noch mein angepasstes Skript

    Spoiler anzeigen
    [autoit]

    #include <plink_wrapper.au3>
    #include <Constants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=e:\autoit\guis\frm_plink.kxf
    $frm_plink = GUICreate("Plinkout", 615, 439, 192, 124)
    $ed_stdOut = GUICtrlCreateEdit("", 16, 24, 585, 217)
    GUICtrlSetData(-1, "ed_stdOut")
    $ed_stderr = GUICtrlCreateEdit("", 16, 264, 585, 129)
    GUICtrlSetData(-1, "ed_stderr")
    $btn_connect = GUICtrlCreateButton("SSH Connect", 16, 408, 75, 25)
    $in_Input = GUICtrlCreateInput("", 256, 408, 121, 21)
    $btn_send = GUICtrlCreateButton("Send", 392, 408, 75, 25)
    $btn_close = GUICtrlCreateButton("SSH Close", 96, 408, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_connect
    conSSH()
    GUICtrlSetData($ed_stdOut,sendSSH(20000))
    Case $btn_send
    _Say(GUICtrlRead($in_Input))
    GUICtrlSetData($ed_stdOut,sendSSH(20000))
    Case $btn_close
    _Plink_close()
    MsgBox(0,"SSH Verbindung","geschlossen")
    EndSwitch
    WEnd

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

    Func sendSSH($delay)
    $out = _Collect_stdout($delay)
    Return $out
    EndFunc

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

    Func conSSH()
    $plinkLoc = "C:\Users\user\Desktop\PLINK.EXE"
    $plinkServ = "server -pw pw -l pw "
    $plinkHandle = _Start_plink($plinkLoc,$plinkServ)
    Return $plinkHandle
    EndFunc

    [/autoit]
  • Autoit SSH per Plink

    • Pace17881
    • 7. März 2014 um 12:04

    Hallo zusammen,

    ich bin Sebastian(32) und komme aus der Nähe von Erlangen und benötige mal eure Hilfe

    Ich möchte per SSH eine Verbindung zu einem Server mit Plink öffnen.
    Dann soll stdout, stderr in eine GUI ausgegeben werden. Über diese GUI möchte ich dann auch per stdin Daten eingeben.

    Bisher kann ich den Connect durchführen und dann wird der Output im ersten Editfeld ausgegeben. Jedoch aktualisiert sich das Control permanent. Also Änderungen kann man da kaum herauslesen. Also wie kann man sich nur die Änderungen ausgeben lassen?

    Was muss ich machen, damit ich Daten abschicken kann?

    Hier mein Skript:

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=e:\autoit\guis\frm_plink.kxf
    $frm_plink = GUICreate("Plinkout", 615, 439, 192, 124)
    $ed_stdOut = GUICtrlCreateEdit("", 16, 24, 585, 217)
    GUICtrlSetData(-1, "ed_stdOut")
    $ed_stderr = GUICtrlCreateEdit("", 16, 264, 585, 129)
    GUICtrlSetData(-1, "ed_stderr")
    $btn_connect = GUICtrlCreateButton("SSH Connect", 256, 408, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_connect
    conSSH()
    EndSwitch
    WEnd
    Func conSSH()
    $hostname = "server"
    $stream = Run(@comspec & " /k C:\Users\user\Desktop\PLINK.EXE " & $hostname & " -pw pw -l login -ssh ", "C:\Users\user\Desktop", @SW_SHOW ,$STDIN_CHILD + $STDOUT_CHILD + $STDERR_CHILD)

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

    ;~ $out = "Output:" & @CRLF
    Local $out
    While 1
    $out &= StdoutRead($stream)
    GUICtrlSetData($ed_stdOut,$out)
    If @error Then ExitLoop
    Wend

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

    ;~ $out &= @CRLF & @CRLF & "Error:" & @CRLF
    While 1
    $out &= StderrRead($stream)
    GUICtrlSetData($ed_stderr,$out)
    If @error Then ExitLoop
    Wend
    EndFunc

    [/autoit]

    Vielen Dank schon mal

    Grüße
    Sebastian

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™