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

Beiträge von latemail

  • Menü Problem

    • latemail
    • 5. März 2009 um 17:13
    Zitat von Hacksor
    Spoiler anzeigen
    [autoit]


    Func _sett()
    $sett = GUICreate (" Einstellungen", 150, 150, -1, -1)
    GUICtrlSetState (@SW_HIDE, $guiCPL)
    GUISetState(@SW_SHOW, $sett)
    $check1 = GUICtrlCreateRadio (" 1280x1024 ", 4, 10)
    $check2 = GUICtrlCreateRadio (" 1600x1200 ", 4, 30)
    $check3 = GUICtrlCreateRadio (" 800x600 ", 4, 50)
    $Button = GUICtrlCreateButton("Auswählen", 4, 75)

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

    GUICtrlSetOnEvent ($Button, "auf1_2")

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

    EndFunc

    [/autoit]
    Alles anzeigen

    Problem hierbei: Du kannst keine Parameter übergeben, da mußt du wohl globale Variablen definieren, das 2. GUI per Button-Druck auslesen und die Werte dort speichern (separate Func), und dann in Deinen anderen Funktionen "auf1_X" verarbeiten .....

    bischen Tüftelei, aber sollte klappen

    oder die Auswahl der Auflösung in das Menü "Einstellungen" direkt einbauen ???? vielleicht einfacher ???

  • Menü Problem

    • latemail
    • 5. März 2009 um 16:07

    Du vermischst wieder die beiden Modi; nutze auch für die zweite GUI GUICtrlSetOnEvent ..................

  • Mehrere (fast) gleiche Fenster identifizieren und anpassen

    • latemail
    • 5. März 2009 um 13:02
    Zitat von Osterhase

    Ich habe versucht, den Code in mein Skript einzubauen.
    Nur leider funktioniert das nicht. Ich erhalte immer die Fehlermeldung:

    ==> Expected a "=" operator in assignment statement.:
    $multihandle($counter) = WinGetHandle($list[$i][0])
    $multihandle^ ERROR

    Ich hatte auf die Schnelle (ohne Test) den Block rausgezogen, hier mal mein ganzes Testscript

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Global $text, $count

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

    $var = WinList()
    ; _ArrayDisplay($var) ; Tabelle mit allen Prozessen

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

    For $i = 1 to $var[0][0]
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then ; nur solche Proz. mit Fenster
    $text = $text & $var[$i][0] & " (" & $var[$i][1] & ") "& @CRLF
    $count = $count + 1
    EndIf
    Next
    $text = $text & @CRLF & "Anzahl : " & $count

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

    MsgBox(0, "Details", $text)

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

    Func IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf

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

    EndFunc

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

    Auch verstehe ich nicht so ganz, was dein Skript macht. Kann es sein, das es mir "nur " das handle liefert?

    Genau .... so ist das, das eindeutige Handle zu jedem Fenster

    Ich weiß auch nicht, wie ich den "WinMove"-Befehl einbauen soll und wie das mit dem "AlreadyMoved[X]" funktioniert.

    Ich dachte mir das so ( kein Code, nur die Idee dazu!):

    Fenster[1]-Handle bestimmen und in der Variablen (als Array) speichern
    Fenster[1] bewegen
    Variable AlreadyMoved[1] setzen

    weiter mit Fenster[2]

    Alles anzeigen

    und noch ein Tip aus der Hilfe:

    WinMove ( "title", "text", x, y [, width [, height[, speed]]] )

    Parameter
    title Der Titel des zu verändernden Fensters. Hier: Mehr Infos zur Titelangabe.
    text Der Text des zu verändernden Fensters.

    Window Handles / HWNDs (ganz unten auf der Seite, leider noch nicht übersetzt)
    The variant datatype in AutoIt natively supports window handles (HWNDs). A window handle is a special value that windows assigns to a window each time it is created. When you have a handle you may use it in place of the title parameter in any of the function calls that use the title/text convention. The advantage of using window handles is that if you have multiple copies of an application open - which have the same title/text - you can uniquely identify them when using handles. When you use a window handle for the title parameter then the text parameter is completely ignored.

    also .........

    WinMove ( Fenster[1], "", x, y [, width [, height[, speed]]] )

  • variable Variable in INI schreiben

    • latemail
    • 4. März 2009 um 12:40
    Zitat von Saft

    Hallo Community,

    mein Programm durchläuft eine Schleife und ich möchte bei jedem Durchlauf den Wert einer Variablen in eine INI schreiben. Es kann passieren, das der Wert gleich ist, es soll aber trotzdem untereinandert in der INI geschrieben werden.

    Ich bekomme nur hin, verschiedene Variablen untereinander zu schreiben, das oben genannte Problem schaff ich irgendwie nicht

    Gruß,
    Saft

    wenn Du Werte "sammeln" und dokumentieren willst, dann nimm doch eine normale Datei (siehe Hilfe):

    $file = FileOpen("test.txt", 1) <<<<<------- Öffnen zum Schreiben durch Anhängen
    FileWriteLine($file, $var)
    FileClose($file)

  • Mehrere (fast) gleiche Fenster identifizieren und anpassen

    • latemail
    • 3. März 2009 um 16:38

    Ich habe das schon mal so gelöst, mein Suchbefehl ist natürlich nicht so schick wie Deiner :whistling:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
    Global $counter = 1

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

    $list = WinList() ; alle Prozesse
    If IsArray($list) Then
    For $i = 1 to $list[0][0]
    If $list[$i][0] <> "" AND IsVisible($list[$i][1]) Then ; nur die sichtbaren Prozesse (sichtbar heisst mit Fenster, also nicht zwingend aktiv)
    if StringInStr ($list[$i][0], "GNU") > 0 Then
    $multihandle[$counter] = WinGetHandle($list[$i][0])
    $counter += 1
    EndIf
    EndIf
    Next
    EndIf

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

    und für die Abfrage "Bewegt oder Nicht" würde ich einen Merker nehmen (AlreadyMoved[X])

  • Maus script gesucht!

    • latemail
    • 27. Februar 2009 um 16:12

    den ersten Mausklick macht er doch sowieso, reicht nicht das Loslassen der Taste zu erkennen und dann den zweiten Klick auszulösen??

  • Sriptaktivität

    • latemail
    • 27. Februar 2009 um 15:48
    Zitat von Manlius

    Hi Leute,
    ich hab mal ne Frage.
    Und zwar geht das irgendwie, dass wenn in einem Sript vielleicht 1 Minute oder so keine aktivität ist, dass dieses Sript von vorne wieder anfängt?!
    Weil wenn jetzt z.B. in einem Sript irgendwie ein PixelGetColor auftaucht und das Pixel nach 1 Minute oder länger nicht erscheint wäre sowas ja ganz nützlich, dass das Sript von ganz von vorne wieder startet.

    Danke

    Manlius

    versuchs mal mit:

    - TimerInit() / TimerDiff()

  • String suchen verändern

    • latemail
    • 25. Februar 2009 um 15:00
    Zitat von MaZy

    1. das "?" suchen
    2. 4 Zeichen nach rechts(also h)
    3. da ist ein wort die 4 zeichen lang sind (?)
    4. das soll es als Variable gespeichert werden.

    mfg MaZy

    "hierstehtirgendwas?undhierauchnochmalwas"

    aus Deiner Beschreibung - so wie ich sie enträtselt habe - suchst Du das "hier", oder liege ich falsch???

  • Einen Zähler mit einer Ini

    • latemail
    • 25. Februar 2009 um 14:48

    OFFTOPIC:

    :D:D:D

    na wenn ich in Deine Signatur schaue habe ich das Gefühl, dass nicht nur Englisch ein Problem für manche ist .........

    :D:D:D

  • Einen Zähler mit einer Ini

    • latemail
    • 25. Februar 2009 um 14:41
    Zitat von Padmak

    latemail
    Es gibt die Hilfe auch auf Deutsch :P
    http://autoit.aufwaerts.de/hilfe

    Padmak

    THX, habe in der Eile einfach die engl. Variante genommen ...............

    und außerdem, wo bleibt dann die Herausforderung der Sprachbarriere 8)

  • String suchen verändern

    • latemail
    • 25. Februar 2009 um 14:35
    Zitat von MaZy

    ihr seid lustig :P
    tue ich schon lange... ich hab immernoch kein logik.. fürs weg gefunden

    ahh StringInStr bringt mich schonmal weiter :P


    also zur "Logik", ein anderer Weg (nicht die prof. Lösung aber einfacher umzusetzten ) wäre :

    - While - Wend - Schleife, bis mit StringInStr nichts mehr gefunden wird [While StringInStr(...)]
    - mit StringInStr Position des Suchstrings auslesen
    - $zaehler += 1
    a) die gesuchten 4 Zeichen mit StringMid auslesen und in Variable speichern -->> Variable als Array[$zaehler]
    b) linken Teil inklusiv "?" und 4 Zeichen und den gesuchten 4 Zeichen mit StringTrimRight von Basisstr. abschneiden -->> neuer Basisstr.
    - Wend

  • Einen Zähler mit einer Ini

    • latemail
    • 25. Februar 2009 um 10:21

    Zitat aus der Hilfe :
    Remarks
    The search is performed left-to-right, top-to-bottom and the first match is returned.


    .... ich denke das Script schreibt Dir immer wieder nur die erste Fundstelle in die Ini, deshalb vielleicht mit zwei Schleifen und dem Befehl PixelGetColor den Bildschirm absuchen und Treffer zählen

  • Problem bei GuiCtrlSetData und Groß/Kleinschreibung des 2. Parameters

    • latemail
    • 25. Februar 2009 um 10:03

    Mann O Mann ......

    große Bewunderung, wie kann man nur soviele Details kennen??!!?? 8o

  • Problem bei GuiCtrlSetData und Groß/Kleinschreibung des 2. Parameters

    • latemail
    • 24. Februar 2009 um 14:46

    Hi,

    der Hintergrund ist, dass die Daten in einer Liste als String gehandhabt werden, egal ob Du "2" oder "Test" reinschreibst.

    Wenn man ohne weiteren Aufwand Strings vergleicht;

    $b1="test"
    $b2="Test"
    if $b1=$b2 then MsgBox(1,"","Gleich")

    dann ist "test" eben gleich "Test".


    Kanst Du nur mit StringCompare ( "string1", "string2" [, casesense] ) abfangen

  • Pixelsearch anders suchen lassen

    • latemail
    • 23. Februar 2009 um 09:59

    ein Möglichkeit:

    1. suche dein Bild mit PixelGetColor ab und speichere die "Treffer" in einem Array
    2. lies den ersten (links oben) und den letzten Treffer (rechts unten) aus
    3. weiter gehts

  • PixelCheckSum will nicht richtig funktionieren...

    • latemail
    • 23. Februar 2009 um 09:49
    Spoiler anzeigen
    [autoit]


    ;
    ; Get initial checksum
    $checksum = PixelChecksum(1206,61,1206,61)
    ;
    ; Wait for the region to change, the region is checked every 100ms to reduce CPU load
    While
    IF $checksum <> PixelChecksum(1206,61,1206,61) Then
    Send("{9}")
    ;ziehe Angel, ziele ... was auch immer
    Endif
    sleep(xxx)
    WEnd

    [/autoit]
  • 2x GUI öffnen

    • latemail
    • 19. Februar 2009 um 14:28

    ich docke mal hier an, da die Überschrift paßt:

    1. ich habe ein Haupt-GUI, in dem ich z.B. Daten eingeben kann zur weiteren Verwendung im Script
    2. ich öffne per Klick auf ein Label ein zweites GUI, in dem der Inhalt einer Ini-Datei per ListView angezeigt wird
    3. schließen kann man Nummer 2 z.B. mit einem Button oder "ESC"

    klappt alles prima, bis ich das zweite GUI wieder schließe, ich habe es mit @SW_SHOW / HIDE / ENABLE etc. versucht
    in allen möglich Kombinationen, das Haupt-GUI verweigerte jeden weiteren Mausklick

    ich habe es jetzt etwas unelegant so gelöst (gekürztes Script!!):

    Spoiler anzeigen
    [autoit]


    ; ######### Aufruf des 2ten GUI aus dem Haupt-GUI heraus
    Func gui()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $L8
    GUIDelete() ;Haupt-GUI
    _iniread() ;2. GUI
    EndSwitch
    WEnd
    EndFunc ;==>gui

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

    ; ######### Rücksprung
    Func _iniread ()
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $button
    GUIDelete()
    gui()
    ExitLoop
    Case $GUI_EVENT_CLOSE
    GUIDelete()
    gui()
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Wie könnte man es anders lösen, oder ist das die Standardlösung??

  • Problem mit HotKeySet

    • latemail
    • 18. Februar 2009 um 18:03

    also vielleicht ein Beispiel zum Array (nur auf die Schnelle, da könnte man noch mehr machen, z.B. die Positionen der Inputs aus dem Index berechnen, dann wird es noch kürzer):

    Spoiler anzeigen
    [autoit]


    Global $file = "C:\config.ini"
    Global $anzahl = 20+1 ; Array zählt von 0 bis Max
    GLOBAL $section[$anzahl], $key[$anzahl], $val[$anzahl]

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

    ;Einlesen der Werte
    For $i = 1 to $anzahl
    $val($i) = IniRead($file, $section($i), $key($i))
    Next

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

    ; SCRIPT
    ; SCRIPT
    ; SCRIPT
    ; SCRIPT

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

    ;Belt 1 Eingabe
    $Var1 = GUICtrlCreateInput ($val(1), 80, 50, 50)
    GUICtrlCreateLabel ( $key(1), 10, 54 )

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

    ; SCRIPT
    ; SCRIPT
    ; SCRIPT
    ; SCRIPT

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

    Case $msg = $Start
    For $i = 1 to $anzahl
    IniWrite($file, $section($i), $key($i), GUICtrlRead ($Var($i)))
    Next
    GUIDelete()
    Call ("Vorlauf")
    Case $msg = $GUI_EVENT_CLOSE
    MsgBox(0, "Schliessen", "Das Konfigurationsprogramm wird beendet")
    EndSelect

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

    ; SCRIPT
    ; SCRIPT
    ; SCRIPT
    ; SCRIPT

    [/autoit]
  • Mausbewegungen aunsichtbar ?

    • latemail
    • 17. Februar 2009 um 15:23
    Zitat von d0npers


    ..... meine Mauszeiger führen kann und etwas machen kann und neben bei das Programm ......

    OK, habe zu flüchtig gelesen :whistling:

    -->>> OSCAR hat den entscheidenden Tip gegeben :thumbup:

  • Fehlerhafte Ergebnisse mit "PIXElGetColor" mit ATI-Grafikkarten

    • latemail
    • 17. Februar 2009 um 15:15

    Ich kenne das Problem auch und verwende daher in solchen Fällen immer

    PixelSearch ( left, top, right, bottom, color [, shade-variation] [, step]] )

    denn hier kann man über die shade-variation eine gewisse Streubreite des Farbwertes definieren,
    damit habe ich meine Trefferquote deutlich erhöht. Gegebenenfalls auch 2 odermehr PixelSearch
    verwenden .......

    peethebee
    und es ist nicht "unwahrscheinlich", ich habe festgestellt, daß sich selbst während der Nutzung eines Programms
    die mit PixelGetColor ausgelesenen Werte verändern können, ein Erklärung habe ich allerdings nicht dafür ...... ?(

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™