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

Beiträge von BugFix

  • Warten auf ein Fenster das vielleicht nie kommt.

    • BugFix
    • 22. Juli 2012 um 11:35

    Ganz einfach, du fragst den Rückgabewert ab (das Handle, des zu öffnenden Fensters, bei TimeOut ist das 0):

    [autoit]


    If Not WinWait("Fenster_X", "", $timeout) Then
    ;... das ging daneben
    Else
    ;... jetzt gehts weiter
    EndIf

    [/autoit]
  • ListView sortieren kurz nach Mitternacht

    • BugFix
    • 22. Juli 2012 um 10:36
    Zitat von v206

    1. Meine ListView zu sortieren indem ich auf die Spaltenüberschrift klicke und

    Exakt dazu ist ein Beispiel in der Hilfe. Bitte LESEN!

    Zitat von v206

    2. Die Spalten nach rechts oder links verschieben kann.

    Einfach Spaltenrand anklicken und ziehen? Oder was meinst du? - Inhalte tauschen? Inhalt_1 lesen und zwischspeichern, Inhalt_2 an Inhalt_1 schreiben, aus Zwischenspeicher an Inhalt_2 schreiben. Die nötigen Funktionen findest du ausführlich dokumentiert in der Hilfe (Listview-UDF).

  • LogFiles und mehr

    • BugFix
    • 22. Juli 2012 um 09:31

    @Nice_2012
    Ich vermute, dir fehlt noch etwas an Grundlagen. Jedes Ausführen eines Befehls in AutoIt setzt parallel das Makro @error. Bei erfolgreicher Ausführung ist @error=0. Treten Fehler auf kannst du die Fehlerwerte in der Hilfe zum entsprechenden Befehl nachlesen. Erweiterte Fehlerinformationen werden auch häufig im Makro @extended hinterlegt.
    Wenn du also die Befehle so ausführen läßt:

    [autoit]

    ConsoleWrite( Funktion($param1, $param2) & @CRLF & 'error: ' & @error & @CRLF)

    [/autoit]

    bekommst du die relevanten Infos in die Konsole.
    Noch besser geht es, wenn du in SciTE einfach den Cursor auf den Funktionsnamen setzt und "Alt+D" drückst. ;) Dann wird eine Debugzeile mit dem Aufruf unterhalb des Befehlsaufrufs eingefügt. Den originalen Aufruf kommentierst du dann vorübergehend aus.

  • wie kann man den staus einer combobox abfragen??

    • BugFix
    • 21. Juli 2012 um 16:07

    Einfach bei den "Set"-Funktionen in der Hilfe auf "Related" schauen, da findet man meist das Gegenstück. ;)
    GUICtrlGetState

  • Checkbox Textfarbe ändern

    • BugFix
    • 20. Juli 2012 um 14:55
    Zitat von Ilse

    bedeutet das, ich kann $chkName nachträglich nicht mehr beeinflussen?


    Den Namen kannst du immer ändern mit GuiCtrlSetData ;)

  • Checkbox Textfarbe ändern

    • BugFix
    • 20. Juli 2012 um 14:25
    Zitat von Ilse

    Wie kann ich $chkname farblich ändern, wenn die Funktion aufgerufen wird


    Den Checkbox-Text kannst du (da dein System vermutlich mind. XP ist bzw. diesen Style nutzt) nicht färben.

    Zitat

    Checkbox, Radio, Group or Progress controls cannot be painted if the "Windows XP/Vista style" is used.


    Einfach ein Label neben die Checkbox setzen, statt des Textes in der Checkbox, dann kannst du munter mit GUICtrlSetColor einfärben. Checkboxereignis abfragen und je nach Zustand färben:

    [autoit]

    ;...
    Case $iMsg = $CheckBox
    If BitAnd(GuiCtrlRead($CheckBox), $GUI_CHECKED) Then
    GUICtrlSetColor($CheckBoxLabel, $Color_Checked)
    Else
    GUICtrlSetColor($CheckBoxLabel, $Color_UnChecked)
    EndIf
    ;...

    [/autoit]
  • Input-Feld deaktivieren wenn Combo1 gewählt

    • BugFix
    • 20. Juli 2012 um 12:57

    Einfach nur freigeben, wenn 'Firma2' gewählt wurde:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $Form1 = GUICreate("Auswahl", 625, 443, 556, 260)
    $Label1 = GUICtrlCreateLabel("Firma", 192, 72, 36, 17)
    $Combo1 = GUICtrlCreateCombo("", 232, 72, 265, 25)
    GUICtrlSetData($Combo1, 'Firma1|Firma2')
    $Label2 = GUICtrlCreateLabel("e-mail", 192, 104, 36, 17)
    $Input1 = GUICtrlCreateInput("ausgrauen wenn Firma1 oder nichts ausgewählt", 232, 104, 273, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo1
    If GUICtrlRead($Combo1) <> 'Firma2' Then
    GUICtrlSetState($Input1, $GUI_DISABLE)
    Else
    GUICtrlSetState($Input1, $GUI_ENABLE)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • PDF Datei nach Wort durchsuchen und dieses dann als Dateiname verwenden und die Datei umbenennen.

    • BugFix
    • 20. Juli 2012 um 10:11
    Zitat von funkey

    Wenn die PDF-Datei nicht verschlüsselt ist, dann müsste man doch den Text auch mit FileRead erhalten


    Ich hab mal diverse PDF-Dateien (alle unverschlüsselt) im Hex-Editor angeschaut: Kein Klartext, ist halt ein eigenes Format. Gibt vielleicht Ausnahmen, aber darauf würde ich mich nicht verlassen.

  • AutoIt Array Speicherfresser?????

    • BugFix
    • 20. Juli 2012 um 10:06

    @D2thunder: Das kann ich dir in Bezug auf AutoIt nicht sagen, da ich nur sicher weiss, dass in LUA Skripte durch Globale Variablen verlangsamt werden. AutoIt mit seinem seltsamen Variablen-Scope geht eh eigene Wege. Da AutoIt aber sowieso mindestens Faktor 10 langsamer ist als LUA spielt das sicher eher eine untergeordnete Rolle. Geh doch einfach immer so vor: Kannst du Globale Variablen vermeiden - dann vermeide sie. Ist natürlich unbefriedigend, dass man für den Bereich eines Skriptes (also Lokal innerhalb des Skriptes) Globale Variablen verwenden muss um sie allen Teilen des Skriptes zugänglich machen zu können.
    Aber du kannst eigentlich unbesorgt sein. Im Allgemeinen wirst du kaum Probleme dadurch haben.

  • was für eine besch...eidene Woche!!!!

    • BugFix
    • 20. Juli 2012 um 09:56

    Kleiner Tipp zum Schlauchaufziehen:
    - Talkum solltest du dabei haben (Schlauch damit einreiben und Mantel von Innenseite, vermindert Reibung und Erhitzung)
    - Wenn du den Schlauch eingezogen hast und die Decke auch wieder in der Felge ist: Schlauch anpumpen, sodass du noch locker mit dem Daumen eindrücken kannst und dann "Durchstauchen". Dazu das Rad etwa 30 cm anheben (senkrecht halten) und dann auf den Boden stauchen lassen. Rad ein Stück drehen und den nächsten Bereich stauchen, solange bis du eine volle Umdrehung hast. Vorteil: Evtl. Falten werden dabei rausgedrückt.

    Zum Lösen des Mantels von der Felge (und umgekehrt auch zum Aufziehen) sollte man keinesfalls Werkzeug verwenden. Das sind alles Tiefbettfelgen, die es erlauben das per Hand zu erledigen. Lässt sich allerdings schlecht in Worte fassen. Aber in meiner Jugend habe ich damit viele Wetten gewonnen, dass ich ausser zum Radmutter lösen beim Schlauch-/Reifenwechsel kein Werkzeug brauche. :rolleyes:

  • Objekte auf Gui aktualisieren

    • BugFix
    • 20. Juli 2012 um 09:35

    Auf ein bereits erstelltes Tab im Nachhinein Ctrl zu erstellen macht dir nur Ärger. Um die Zugehörigkeit zum Tab-Item zu gewährleisten müssen alle Ctrl vor Beenden der Tab-Erstellung ( GUICtrlCreateTabItem("") ; == close Tab creation ) generiert werden.

    Um die GUI oder einzelne Bereiche (Ctrl) zu aktualisieren kannst du _WinAPI_RedrawWindow verwenden.

  • AutoIt Array Speicherfresser?????

    • BugFix
    • 19. Juli 2012 um 21:33
    Zitat von Marthog

    Ich finde es ungünstig, dass es nur die zwei Gültigkeitsbereiche gibt, da man manchmal Variablen nur zeitweise braucht, z.B. nur innerhalb einer Schleife, und dass man auch innerhalb von Funktionen oder neue globale Variablen erzeugen kann.


    Das sehe ich genauso. Ich denke es wäre sicher kein allzu grosser Aufwand, "Do-End" in AutoIt zu integrieren. Innerhalb einer solchen Struktur erstellte Variablen wären auch nur dort gültig und würden anschließend sofort verworfen. Auch sollten Zählervariablen von Schleifen am Ende der Schleife automatisch aus dem Speicher entfernt werden - leider bleiben sie in AutoIt erhalten.
    Ich arbeite recht viel mit LUA, da ist das perfekt umgesetzt und es gilt der eiserene Grundsatz: Vermeide Globale Variablen, denn damit wird das Skript langsam.
    Leider kann man in AutoIt den Globalen Variablen kaum aus dem Weg gehen, aber man kann durch Auslagern in Funktionen und Übergabe von Variablen, den Bedarf an Globalen Variablen minimieren.

  • ContextMenuItems mit GuiGetMsg

    • BugFix
    • 19. Juli 2012 um 15:04
    Zitat von zwockel

    hier n bsp aus dem netz


    :D Du hast nur die Hälfte des Skripts kopiert. Es fehlt die registrierte Funktion WM_Notify_Events, und in der findet die Bearbeitung statt.

  • Sie benötigen ein Programm, einige Programme laufen, AutoIT 3.3.8.1

    • BugFix
    • 19. Juli 2012 um 09:48

    This is an crosspost!
    In this case please link the crossed posts.

  • Gitter System?

    • BugFix
    • 19. Juli 2012 um 09:39

    z.B. so:

    Spoiler anzeigen
    [autoit]

    Global $aBtn[30][30]
    $hGui = GUICreate('Test', 300, 300)
    For $i = 0 To 29
    For $j = 0 To 29
    $aBtn[$i][$j] = GUICtrlCreateButton('', $i*10, $j*10, 10, 10)
    Next
    Next
    GUISetState(@SW_SHOW, $hGui)

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

    Do
    $iMsg = GUIGetMsg()
    For $i = 0 To 29
    For $j = 0 To 29
    If $iMsg = $aBtn[$i][$j] Then
    ConsoleWrite('Zeile: ' & $i+1 & ', Spalte: ' & $j+1 & @CRLF)
    ExitLoop
    EndIf
    Next
    Next
    Until $iMsg = -3

    [/autoit]
  • OwnContext UDF (vorher MenuEx)

    • BugFix
    • 19. Juli 2012 um 09:25

    @D2thunder: Ich verstehe nicht, was du meinst. Was von Holgers ModernMenu siehst du als "Anregung oder so" ? ;)

  • Mehrzeiliger Button mit anderer Farbe

    • BugFix
    • 18. Juli 2012 um 22:46

    zu 1. Du kannst nur OnEvent ODER GuiGetMsg verwenden. Gemeinsam geht nicht (Ist ja auch nicht notwendig. Man kann beide Modi, bis auf wenige Ausnahmen, identisch nutzen).

    zu 2. Bei einem Tab hängst du die Variable des Tab-Ctrl in die GuiGetMsg-Schleife (Case $TabCtrl) und liest dann im Case mit GuiCtrlRead($TabCtrl) den Index des aktuellen TabItem aus. Noch differenzierter geht es mit Verwendung der GuiTab.au3. Schau dir in der Hilfe mal die Befehle dieser UDF an.

  • .NET Funktionen in AutoIt Verwenden

    • BugFix
    • 18. Juli 2012 um 20:22

    _mk_
    Das ist auch bekannt und im Wesentlichen bereits in UDF umgesetzt. ;)
    Es geht darum, grundsätzlich .NET-Klassen nutzen zu können.

  • .NET Funktionen in AutoIt Verwenden

    • BugFix
    • 18. Juli 2012 um 18:53

    Zumindest ist das mein bisheriger Wissensstand. Ich hab allerdings auch noch nicht mit existierenden Klassen probiert.

  • AddFile

    • BugFix
    • 18. Juli 2012 um 17:24
    Zitat von haspop

    autobert, ich habe die anderen Beiträge gelöscht vondaher kann ich hier nach hilfe fragen


    Wenn du das nochmals tust, trete ich dir (wenn auch nur symbolisch) in den Allerwertesten! Dir steht der Edit-Mode zur Verfügung, somit kannst du jederzeit deine Posts ergänzen. Löschen ist höchst unhöflich, da somit die anderen Post sinnfrei in der Luft hängen.

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™