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. Schnitzel

Beiträge von Schnitzel

  • was mache ich falsch?

    • Schnitzel
    • 7. Januar 2010 um 14:08

    du verwendest Guictrlsetdata falsch
    hier ein kleines beispiel wie es richtig geht

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 300, 114, 193, 125)
    $Label1 = GUICtrlCreateLabel("Hier steht der Text", 10, 16, 280, 17)
    $Input1 = GUICtrlCreateInput("Gib einen Text ein", 10, 40, 280, 21)
    $Button1 = GUICtrlCreateButton("Text ändern mit Guictrlsetdata", 10, 72, 280, 33)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUICtrlSetData($Label1, Guictrlread($Input1))
    EndSwitch
    WEnd

    [/autoit]
  • OK drücker

    • Schnitzel
    • 7. Januar 2010 um 13:58

    Ich schätzte mal das hier passt nicht: "World funktioniert nicht mehr"

    nimm nochmal dein window info tool und geh auf die fehlermeldung. dann nimmste unter summary ziemlich weit unten unter Visible Text ein stückchen text das das fenster eindeutig beschreibt. und den setzte dann an die stelle von "World funktioniert nicht mehr".
    Eindeutig wäre: "Schließen Sie das Programm" oder "Ein Problem hat die richtige Ausführung des Programms verhindert", aber kopiers dir am besten raus

    und das machst du bei diesem du dieses Script

    Spoiler anzeigen
    [autoit]

    $pfad="C:\Users\Administrator\Desktop\ixi3\World.exe"
    While 1
    If WinExists ("Microsoft Windows", "World funktioniert nicht mehr") Then
    ControlClick("Microsoft Windows", "World funktioniert nicht mehr", "[Class:Button; INSTANCE:1]")
    do ; von hier
    sleep(10)
    until winexists("Microsoft Windows", "World funktioniert nicht mehr"); bis hier kann mans evtl weglassen musst du aber ausprobieren
    ShellExecute($pfad)
    endif
    Sleep(100)
    WEnd

    [/autoit]
  • OK drücker

    • Schnitzel
    • 7. Januar 2010 um 10:04
    Zitat von Raupi

    Ohne die WinExists Abfrage versucht deine Lösung andauernd das nicht vorhandene Control zu klicken Schnitzel.

    ich weiß ^^
    war wohl noch bisschen müde
    aber performancetechnisch isses jetz ja auch nich so schlimm, glaub ich

  • Einige Fragen

    • Schnitzel
    • 7. Januar 2010 um 09:16

    ok du machst also den contolclick auf "Update starten" (oder wie auch immer der Startbutton für das Update heißt)
    und dann müssen wir ja nur noch warten bis das update fertig ist. die frage ist was wird dir angezeigt wenn das update fertig ist.
    kommt vllt ein neues Fenster? Kommt eine Msgbox? Ändert sich der Text in einem Fenster?
    irgendwas wird ja wohl anders sein

  • OK drücker

    • Schnitzel
    • 7. Januar 2010 um 09:08

    so in der art dürfts funktionieren

    [autoit]

    while 1
    ControlClick("Microsoft Windows", "World funktioniert nicht mehr", "[Class:Button; INSTANCE:1]")
    sleep(100)
    WEnd

    [/autoit]
  • Link klicken

    • Schnitzel
    • 6. Januar 2010 um 14:51

    direkte bildersuche über ein input oder ähnliches würde auch so gehen:

    [autoit]

    $suche = InputBox("Google Bildersuche Schweiz", "")
    $suche = StringReplace($suche, " ", "+")
    ShellExecute("http://images.google.ch/images?hl=de&source=hp&q=" & $suche & "&btnG=Bilder-Suche&gbv=2&aq=f&oq=")

    [/autoit]
  • hab problem mir einem FTP Script

    • Schnitzel
    • 6. Januar 2010 um 13:57
    Zitat von cartan12

    edit: So jetzt aber...

    nicht ganz^^

    da fehlt mindestens noch das include

    [autoit]

    #include <FTPEx.au3>

    [/autoit]
  • Servus

    • Schnitzel
    • 6. Januar 2010 um 13:46
    Zitat von Tweaky

    Hi,
    wie war denn dein Name auf Helptranslation :?:

    wie wärs denn mit JuraX :D
    in der statistik is er ja drin

    aber keine sorge: er hat nich mehr übersetzt als du ;)

  • hab problem mir einem FTP Script

    • Schnitzel
    • 6. Januar 2010 um 13:41
    Zitat von jpoer

    Danke an die schnellen antworten =)
    Sry bin neu hier kenne michnoch nicht so doll aus =)

    kein problem. poste einfach immer dein script oder ein gekürztes beispielscript. dann ist es viel leichter dir zu helfen.

    einen thread kannst du auf gelöst setzten indem du beim ersten post auf bearbeiten klickst und dann das präfix gelöst auswählst. und natürlich speicherst ;)

  • Servus

    • Schnitzel
    • 6. Januar 2010 um 13:20

    Ui ein helfer

    Herzlich willkommen und viel spaß im forum ;)

  • hab problem mir einem FTP Script

    • Schnitzel
    • 6. Januar 2010 um 12:56

    ich seh hier kein problem sondern nur ne aufgabe :D

    poste doch mal dein script dann können wir uns dein problem genauer ansehen.

    oder du nutzt die SuFu. bei "upload" findet sich da bestimmt einiges

  • Einige Fragen

    • Schnitzel
    • 6. Januar 2010 um 12:52

    Ein problem das es zu lösen gilt ;)
    ist doch super wenn das fenster weg ist sobald das update fertig ist

    [autoit]


    Winwait("Unbenannt - Editor")
    Do
    sleep(100)
    Until Not WinExists("Unbenannt - Editor")
    MsgBox(0,"","hier gehts weiter")

    [/autoit]

    das wartet solange bis ein fenster updatefenster kommt und dann bis es nicht mehr existiert (beispiel anhand des editors ;) )

  • Einige Fragen

    • Schnitzel
    • 6. Januar 2010 um 04:07

    Vorab: Nimm dir für die ersten Projekte nicht allzuviel vor. bastle lieber ersteinmal ein programm das du dann nach und nach erweiterst, bevor du jetz alles auf einmal versuchst.
    ist echt besser so sonst stürzt du uns noch ins chaos. und dann is auch schwer zu helfen.
    versuch einzelne teile in deinem script nach und nach zu ergänzen und wenn du wo probleme hast kannst du gerne nen neuen thread aufmachen.
    aber wichtig ist: erst allein versuchen. nur so lernst dus. und die hilfedatei ist da echt weltklasse.
    ich hab autoit nur durch die hilfedatei gelernt und ich denke das es gut so war.
    kannst aber natürlich gerne fragen wenn du wo hängst oder ein verständnisproblem hast, dafür sind wir ja da ;)

    Zitat

    Also nehmen wir einmal an das Skript öffnet ein Programm und dann erscheint ein neues kleines Fenster mit der Anzeige, dass ein Update verfügbar ist. Das Skript klickt auf "Ja", das Fenster verschwindet und das Update wird heruntergeladen und installiert. Das Skript soll nun warten bis das Update installiert wurde. Wie geht das? Mit WinWaitActive wohl eher nicht, da ja kein neues Fenster erscheint nach der Installation des Updates.

    kommt drauf an, manchmal kommt ein neues fenster mit: Glückwunsch dein update ist fertig oder ähnlichem dann kannste winwait verwenden.
    oder es ändert sich zumindest der text dann kannste auch Winwait verwenden der 2te parameter steht für einen text den das fenster enthalten muss

    Zitat

    Wie kann man die x- und y-Position der Maus für die ControlClick Funktion herausfinden?

    das ist extrem selten dass man die braucht. du brauchst egtl zu 99% nur die ersten 3 parameter bei Controlclick.
    titel sollte klar sein.
    text sollte auch klar sein, (auch wenn mans oft nicht braucht)
    controlid kriegste auch mit dem window info tool ( nimm am besten immer die Advanced (Class) zu finden unter Summary im Window info tool)

    ein controlclick könnte so aussehen:

    [autoit]

    Controlclick("Rechner", "" , "[CLASS:Button; INSTANCE:10]")

    [/autoit]


    das klickt im windows-standartrechner auf die 5
    (egal ob der rechner im vordergrund ist oder minimiert. hauptsache das fenster existiert)

    Zitat

    Ich möchte zudem noch gerne, dass wenn irgendwas im Skript schief geht, dass dann ein Mail an mich geschickt wird. Wie man Mails sendet weiss ich jetzt, aber wie sendet man Fehler?

    fehlerauswertungen musst du selber machen. das makro @error kann dir helfen oder diverse rückgabewerte von den ganzen funktionen.

    Zitat

    Mit dem Windows Taskplaner kann man ja die Skripts ja nicht zufällig ausführen lassen. Also ich möchte die Skritps täglich zwischen 00:00 und 01:00 laufen lassen, also der Start sollte zufällig in diesem Zeitfenster erfolgen. Ist das irgendwie möglich?

    dann würde ich mir ein script mit autoit erstellen das eine zufallszahl zwischen 0 und 59 erstellt und dann solange wartet bis die aktuelle minute gleich der zahl ist. in der praxis etwa so:

    [autoit]

    $zufall = Random(0, 59)
    Do
    sleep(1000)
    Until @MIN = $zufall
    ShellExecute("DeinProgramm")

    [/autoit]

    das script startest du dann einfach mithilfe des Windows Taskplaner und schon wird dein programm zwischen 0:00 und 0:59 ausgeführt

  • Kleines Problem mit StringRegExp.

    • Schnitzel
    • 6. Januar 2010 um 03:40

    ich habs zwar geschafft aber es geht bestimmt wesentlich eleganter

    aber bevor die RegExp-Cracks kommen hier meine lösung:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    $String = "kk191.168.1.115,192.168.001.000,d193.168.1.104 asder194.168.1.10AAssde 155.199.11.11 195.168.190.123.78"

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

    $ergebnis = Stringregexp($String,"(?<![\.\d])((?:\d{1,3}\.){3}\d{1,3})(?![\.\d])",3)
    _ArrayDisplay($ergebnis)

    [/autoit]

    was mir aber noch aufgefallen ist:
    du schließt keine zahlen aus die größer als 255 sind. also 192.168.1.999 wäre bei dir ein match. sowas gibts aber eher selten *g*

    nur gut dass ipv6 noch nicht standard ist. da wirds erst kompliziert :D

  • Schleife mit Winwaitactive

    • Schnitzel
    • 6. Januar 2010 um 03:04

    dann bau ich immer sowas in der art

    Spoiler anzeigen
    [autoit]

    Do
    sleep(100)
    Until WinExists("Window1") Or WinExists("Window2"); Or WinExists("Window3") .....

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

    Select
    Case WinExists("Window1")

    Case WinExists("Window2")

    ;Case WinExists("Window3")
    ;.....
    EndSelect

    [/autoit]
  • Schleife mit Winwaitactive

    • Schnitzel
    • 5. Januar 2010 um 20:10

    winwaitactive hat als 3. parameter ein Timeout. hilft dir das weiter?

  • Einige Fragen

    • Schnitzel
    • 5. Januar 2010 um 19:39

    3. der quelltext wird als string zurückgegeben.

    [autoit]

    $source = _INetGetSource('www.autoit.de')
    msgbox(0,"Der Quellcode ist:", $source)

    [/autoit]

    ob das allerdings die ideale methode für dich ist weiß ich nicht. je nachdem was genau du machen willst.

    5. ka was genau du machen willst, aber winwaitactive wartet solange bis das Fenster (quasi das Window) aktiv ist (also im Vordergrund).
    wenn das der fall ist dann gehts ganz normal im quelltext weiter.

    Zitat

    Ja, essen ist schlecht. ;) Hast du noch nicht diese Nahrungsmittelpillen? :D

    ja doch ich war jetz 1,5 jahr ständig am pc, aber dann gingen die pillen aus :D

    PS: mein pc steht aufn klo, und wasserleitung zum trinken ist auch gleich nebendran

  • Einige Fragen

    • Schnitzel
    • 5. Januar 2010 um 19:02

    bitte bisschen mehr mit der hilfe arbeiten, da steht alles super ausführlich drin und zu allem is n beispiel

    1. klick-->controlclick, "texteingabe"-->controlsettext

    2. die controlfunktienen funktionieren auch bei blockinput, die sind sowieso sicherer als send sleep etc

    3. ist aber drin, evtl brauchst die neueste hilfedatei, oder du machst was falsch, einfach unter index "_INetGetSource" eingeben

    4. Controlclick

    5. von welchen aktionen sprichst du? mit winwait kann man halt warten bis ein programm vollständig geladen ist

    edit: zu langsam
    man sollte nich zwischendurch essen gehn :rofl:

  • Button Freigeben

    • Schnitzel
    • 5. Januar 2010 um 18:00

    kleines beispiel ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 180, 68, 193, 125)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 8, 16, 17, 25)
    $Button1 = GUICtrlCreateButton("Button1", 40, 8, 121, 33, 0)
    GUICtrlSetState(-1, $GUI_DisABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = 1 Then
    GUICtrlSetState($Button1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Button1, $GUI_DisABLE)
    EndIf
    Case $Button1
    msgbox(0,"","Test")
    EndSwitch
    WEnd

    [/autoit]
  • Vorab abfrage machen

    • Schnitzel
    • 5. Januar 2010 um 17:57

    recht einfaches beispiel auf die schnelle ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    $gui1 = GUICreate('GUI 1', 500, 300, -1, -1)
    $button1 = GUICtrlCreateButton('Aufruf GUI 2', 20, 20, 100, 21)
    $radio1 = GUICtrlCreateRadio('rot', 20, 50, 100, 21)
    $radio2 = GUICtrlCreateRadio('blau', 20, 80, 100, 21)

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

    $gui2 = GUICreate('GUI 2', 500, 300, -1, -1)
    $button2 = GUICtrlCreateButton('Zurück zu GUI 1', 20, 20, 100, 21)

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

    GUISetState(@SW_SHOW, $gui1)

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; window-handle
    Case $gui1
    Switch $msg[0] ; event/control-handle
    Case $button1
    GUISetState(@SW_HIDE, $gui1)
    GUISetState(@SW_SHOW, $gui2)
    Case $radio1
    GUISetBkColor("0xFF0000", $gui2)
    Case $radio2
    GUISetBkColor("0x0000FF", $gui2)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Case $gui2
    Switch $msg[0]
    Case $button2
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

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™