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

Beiträge von alpines

  • Per Script Useraktivität simulieren?

    • alpines
    • 2. März 2020 um 11:08
    Zitat von akira2012

    Stell Dir mal vor das Script bricht gerade ab wenn Blockinput auf 1 steht. xD

    Was soll denn daran abbrechen?

  • Per Script Useraktivität simulieren?

    • alpines
    • 28. Februar 2020 um 13:18
    Zitat von akira2012

    Du Fuchs Du! Da hast Du recht - habe ich nicht bedacht - aber Du musst zugeben, dass die Wahrscheinlichkeit gegen 0 geht. Und selbst wenn es passieren sollte sind die Wahrscheinlichkeit, dass es eine größere Auswirkung hat als "Scheiße, falsche Zeile!" auch eher gering. xD

    Wie wärs denn mit BlockInput(1), Mouse Position merken, bewegen, zurückbewegen, BlockInput(0)?

  • Per Script Useraktivität simulieren?

    • alpines
    • 28. Februar 2020 um 12:39
    Zitat von akira2012

    Ich dachte mir - selbst wenn jemand gerade irgendo in einem Text ist, wird das Script vermutlich so schnell hin und herschalten

    Und wenn du am Ende des Dokumentes bist?

  • mit autoit HWinfo.exe(HW-Summary) steuern

    • alpines
    • 25. Februar 2020 um 12:12

    Das Programm braucht Adminrechte, und ich schätze du hast UAC deaktiviert und dein Skript läuft ohne Adminrechte. Versuchs mal mit #RequireAdmin.

  • GUICtrlCreateCheckbox

    • alpines
    • 21. Februar 2020 um 16:21
    Zitat von DOheim

    Nachdem ich lange experimentiert habe, ist mir jetzt die Lösung eingefallen:
    GUICtrlSetState($iCheckbox,1)

    Verwende lieber die vordefinierten Konstanten ($GUI_CHECKED), da dein Script vielleicht in zukünftigen Versionen nicht mehr das selbe Verhalten aufweisen wird wenn du direkt die Zahl reinschreibst.

  • GUI reagiert nicht auf Buttons evt. wegen Schleife oder Sleep?

    • alpines
    • 20. Februar 2020 um 15:51

    Erstelle im globalen Scope eine While-Schleife wo du eine bestimmte Bedingung prüfst ($bRunning) und dann setzt du mit Klicks auf Buttons einfach die Variable.

    Etwa so:

    C
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    
    Global $bRunning = False
    Global $iCounter = 0
    
    Opt("GUIOnEventMode", 1)
    Global $hGUI = GUICreate("", 316, 143)
    GUISetOnEvent($GUI_EVENT_CLOSE, ExitApp)
    
    Global $hToggleCounting = GUICtrlCreateButton("Start Counting", 32, 88, 251, 25)
    GUICtrlSetOnEvent(-1, ToggleCounting)
    
    Global $hCounter = GUICtrlCreateLabel("0", 8, 16, 299, 50, $SS_CENTER)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    
    GUISetState(@SW_SHOW)
    
    While Sleep(10)
        While $bRunning
            $iCounter += 1
            GUICtrlSetData($hCounter, $iCounter)
    
            Sleep(100)
        WEnd
    WEnd
    
    Func ToggleCounting()
        $bRunning = Not $bRunning
    
        GUICtrlSetData($hToggleCounting, ($bRunning ? "Stop" : "Start") & " Counting")
    EndFunc
    
    Func ExitApp()
        Exit
    EndFunc
    Alles anzeigen
  • GUI reagiert nicht auf Buttons evt. wegen Schleife oder Sleep?

    • alpines
    • 20. Februar 2020 um 12:45

    Das sollte auch nicht überraschen, da GuiGetMsg() die Klicks auf der GUI abfragt und du diese Funktion nicht mehr ausführst.

    Ich rate dir dringend zum OnEventModus, dann hast du das Problem nicht mehr. Solltest aber aufpassen, dass du dabei nicht eine Funktion mehrfach betrittst und in While-Schleifen stecken bleibst.

    Die Hilfe beschreibt beide Modi ganz gut, lies dich da einfach mal durch: https://www.autoitscript.com/autoit3/docs/g…OnEventMode.htm

  • Eingabe in Inputboxen in Großbuchstaben wandeln

    • alpines
    • 16. Februar 2020 um 13:38
    Zitat von Frank_S

    Ok, 1:0 für dich.

    Aber in VBA brauche ich für mein Sache mit den Großbuchstaben trotzdem nur eine Zeile Code.

    z.B. so:


    Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    TextBox3.Value = UCase(TextBox3.Value)

    End Sub ===> für Eingaben die per Strg.+V reinkommen

    UND

    Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    KeyAscii = Asc(UCase$(Chr$(KeyAscii)))

    KeyAscii = keycheck(KeyAscii)

    End Sub ===> für normale Tastatureingaben mit Check auf erlaubte Zeichen

    Alles anzeigen

    Du kannst das in AutoIt auch eventbasiert lösen, aber AutoIt bietet halt nicht diese komfortable Eventregistrierung wie vba/.NET und co.

    Zudem reagiert es auch nur auf druck der Entertaste dabei, aber ansonsten ist es das selbe wie in vba.

    C
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    Opt("GUIOnEventMode", 1)
    Global $hGui = GUICreate('Test')
    GUISetOnEvent($GUI_EVENT_CLOSE, ExitApp)
    
    Global $cInput = GUICtrlCreateInput('', 20, 20, 150, 20)
    GUICtrlSetOnEvent(-1, Uppercase)
    
    GUISetState()
    
    While Sleep(10)
    WEnd
    
    Func ExitApp()
        Exit
    EndFunc
    
    Func Uppercase()
        GUICtrlSetData($cInput, StringUpper(GUICtrlRead($cInput)))
    EndFunc
    Alles anzeigen
  • Flash-Test

    • alpines
    • 15. Februar 2020 um 14:21
    Zitat von Musashi

    ACHTUNG : Die Software enthält lt. Chip Adware !

    Die ist sauberer als es die Redaktion von Chip jemals sein wird. Verlink doch bitte direkt zur Homepage, da kannst du zwischen Installer, portable etc. wählen ohne CHIP-Installer oder klick auf "Manuellen Download".

    https://crystalmark.info/en/download/

  • Visual Studio Code & AutoIt

    • alpines
    • 13. Februar 2020 um 13:21

    Ansich finde ich VSCode ne ziemlich feine Sache, aber was mich extrem ankotzt ist dieses zwanghafte Reinpressen von Webentwicklung in Desktopumgebungen.

    Wieso muss es denn unbedingt Electron sein? Gibt es denn im Desktopbereich kein vernünftiges Framework (WPF/.NET Core) um sowas zu realisieren? Wäre sogar um einiges sparsamer mit den Ressourcen.

    Die Settings in json-Form sind auch ziemlich gewöhnungsbedürftig und das Teil hat eine sehr steile Lernkurve.

    Für mich nichts ganzes, und nichts halbes, deshalb nutze ich es persönlich nicht.

    Für meine C# Projekte nutz ich Visual Studio 2019, und für AutoIt nach wie vor SciTE.

    Ich hab mich versucht da irgendwie reinzufuchsen, aber es wollte irgendwie nicht.

  • Item ID eines TreeView Items nach Suche per _GUICtrlTreeView_GetNext

    • alpines
    • 12. Februar 2020 um 15:33
    Zitat von BugFix

    Und ob Handle oder ID verlangt wird, ist jeder Funktionsbeschreibung zu entnehmen, von der ich ausgehe, dass der Anwender sie liest. :P

    Die Doku ist da aber nicht 100%ig korrekt, die Fehler ziehen sich weiter durch.

    RE: Sammelthread "AutoIt Interne Funktionen : Erwartetes Ergebnis -> Tatsächliches Ergebnis"

  • Item ID eines TreeView Items nach Suche per _GUICtrlTreeView_GetNext

    • alpines
    • 12. Februar 2020 um 15:08
    Zitat von BugFix

    Nun, die Funktion _GUICtrlTreeView_AddChild ist, höflich formuliert, nicht unbedingt sinnvoll. Ich habe mir angewöhnt, TreeViewItem ausschliesslich mit ID = GUICtrlCreateTreeViewItem zu erstellen.

    Achtung, das kann ganz schnell nach hinten losgehen. Einige Funktionen der TreeView-UDF unterscheiden nicht zwischen AutoIt-Handle (GUICtrlCreateTreeViewItem) und Windows-Handle (_GUICtrlTreeView_Create).

    Wenn eine Funktion nicht korrekt arbeiten sollte, dann immer einen Blick mit Strg+J in die Funktion werfen und selber verifizieren. Wenn das Handle gebraucht wird dann auch das Handle mit GUICtrlGetHandle($id...) übergeben.

  • Rule 110 - zellulärer Automat

    • alpines
    • 12. Februar 2020 um 00:34

    Ich machs diesma kurz: Bin drüber gestolpert und wollte es nachbauen!

    Conway's Game Of Life ist ähnlich, aber hier sieht man schön den zeitlichen Verlauf auf der Y-Achse.

    Bisschen was zu lesen:

    https://en.wikipedia.org/wiki/Rule_110

    https://en.wikipedia.org/wiki/Elementary_cellular_automaton

    https://de.wikipedia.org/wiki/Zellul%C3%A4rer_Automat

    Wie funktioniert das ganze?

    Man sucht sich eine Zahl aus, die als Regel dienen soll, dabei gibt die Binärrepräsentation der Zahl den Zustand einer Zelle im nächsten Zeitpunkt an.

    Beispiel 110 (kopiert vom ersten Wikipedia Artikel!):

    Current Pattern111110101100011010001000
    New state for center cell01101110

    Dabei stellen die Bits im "Current Pattern" die Zelle links, die selbe Zelle und die Zelle rechts im Zeitpunkt davor dar.

    Der neue Zustand ist die Binärrepresentation von 110d = 01101110b gestreckt auf die entsprechenden Patterns.

    Anschließend muss man nur noch die erste Reihe angeben von der die restlichen Generationen entstehen sollen.

    Der Bereich ist im Skript markiert, entweder kann man hier einfach nur einen Pixel 1 setzen oder man lässt sich was kreatives einfallen ;) Alle x Pixel, oder ein Muster, ganz links, ganz rechts.

    Für den Anfang ist es in der Mitte platziert um es nicht bei einem 'schlechten' Pattern etwas zu verpassen.

    Vielleicht etwas träge auf langsameren Systemen, und da ist bestimmt noch ordentlich Performance drin, insbesondere mit bisschen ASM-Magie, wer mag kann sich gerne austoben.

    Wie sieht das ganze dann aus?

    pasted-from-clipboard.png

    Ein paar interessante Patterns hab ich im Skript aufgeschrieben. Viel Spaß! :)

    Dateien

    Rule 110.au3 3,01 kB – 487 Downloads
  • Bräuchte Hilfe Variable used without being declared.:

    • alpines
    • 11. Februar 2020 um 11:16

    Du hast immer noch das exakte Problem wie zuvor. Wenn du vor hast mehr Skripte in AutoIt zu basteln rate ich dir dringend die Grundlagen anzueignen, da das Skript, so wie es gebastelt ist, extrem schlechter Codestil ist und es mit der Zeit nicht besser wird.

  • Bräuchte Hilfe Variable used without being declared.:

    • alpines
    • 10. Februar 2020 um 20:44

    Der Scope (Gültigkeitsbereich) deiner Variable ist 'falsch'. Der Grund warum es "mal funktioniert" und nach wenigen Minuten nicht mehr ist der, dass die Funktion mit der WinMove Zeile und $width aufgerufen wird.

    $width ist aber nirgends in einem Scope deklariert der aus 'AjustarJanela' erreichbar ist.

    Um es kurzzufassen:

    Code
    Func Function()
        $variable = 1
    EndFunc
    
    Function()
    
    MsgBox(0, 0, $variable)
  • Datei einlesen und Inhalt finden

    • alpines
    • 10. Februar 2020 um 12:26
    Zitat von apbonn

    Nun kriege ich aber den Fehler

    Wie sollen wir den Fehler den reproduzieren können wenn du uns ein Skript schickst das bereits von Haus aus nicht lauffähig ist? Damit meine ich nicht deine $groupID-Zeile sondern fehlende Includes.

    Deine RegEx-Zeile ist syntaxfehlerfrei, d.h. der Syntaxchecker findet irgendwo vorher einen Fehler der sich durch falsche Annahmen (um weitere Fehler korrekt zu erkennen) wohl durchzieht.

  • Auswahl verarbeiten

    • alpines
    • 7. Februar 2020 um 15:18
    Zitat von Sidewinder

    Wie kann ich das selber programmieren?

    Du musst einfach nur ein Bitfeld erstellen und die Werte dort abspeichern. Und die Position im Bitfeld spiegelt dann wieder welche Option angewählt ist.

    Code
    Local $bLaufwerk = True        ; 1
    Local $bPfad = True            ; 1
    Local $bDateiname = True    ; 1
    Local $bDateiendung = False ; 0
    
    Local $aDatei[4] = [ "C:\", "Ordner1\Unterordner1\", "Datei", ".exe" ]
    
    #cs
        Bitfield 4 Bits = d c b a (a = Least Significant Bit)
    
        (1) a = Laufwerk anzeigen
        (2) b = Pfad anzeigen
        (4) c = Dateiname anzeigen
        (8) d = Dateiendung anzeigen
    #ce
    
    ;Baue Bitfeld auf
    Local $bitfield = BitOr( _
        BitShift($bLaufwerk, -3), _
        BitShift($bPfad, -2), _
        BitShift($bDateiname, -1), _
        $bDateiendung _
    )
    
    MsgBox(0, 0, DisplayInfo($aDatei, $bitfield))
    
    Func DisplayInfo($aFile, $bitfield)
        Local $sString = ""
    
        ;Prüfen ob die Bits im Feld entsprechend gesetzt sind
    
        If BitAND($bitfield, BitShift(1, -3)) Then $sString &= $aFile[0]
        If BitAND($bitfield, BitShift(1, -2)) Then $sString &= $aFile[1]
        If BitAND($bitfield, BitShift(1, -1)) Then $sString &= $aFile[2]
        If BitAND($bitfield, 1) Then $sString &= $aFile[3]
    
        Return $sString
    EndFunc
    Alles anzeigen
  • Flash-Test

    • alpines
    • 7. Februar 2020 um 12:14

    Output ist bei mir ebenfalls 17.

  • Flash-Test

    • alpines
    • 6. Februar 2020 um 21:52

    Habe übrigens den selben Fehler wie UEZ.

  • _GDIPlus_GraphicsDrawCurve ohne 'Abrundungen'

    • alpines
    • 1. Februar 2020 um 16:55

    Du hast einfach nur ein Brett vorm Kopf, so eine Darstellung hat schon viele irritiert. Hier mal ein kleiner Sketch damit du dir das einfacher Visualisieren kannst:

    pasted-from-clipboard.png

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™