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

Beiträge von autoiter

  • Große Datei durchsuchen - Optimierungsvorschläge gesucht

    • autoiter
    • 17. März 2020 um 14:39

    Okay, Aber dann muss dir doch klar sein, dass dein Vergleich ziemlich wertlos ist.

    Poste besser in Zukunft die Vergleichsdaten mit deiner Suche und nenne die Zeiten auf deinem lokalen System. Andere können dann das gleiche testen und Modifizierungen mit Zeiten auf ihrem System zeigen. Das wäre deutlich sinnvoller, als deine gezeigten Daten als Fakten zu nehmen.

  • Große Datei durchsuchen - Optimierungsvorschläge gesucht

    • autoiter
    • 17. März 2020 um 14:10

    Okay. Alles geklärt.

    Deinen Vergleich von _ArrayFindAll und Dict verstehe ich nicht. Dir geht es um einen eindeutigen Treffer? Warum Dann nicht ArraySearch? Bei der Dict-Variante suchst du auch nur nach einem Key..

  • Große Datei durchsuchen - Optimierungsvorschläge gesucht

    • autoiter
    • 17. März 2020 um 13:07

    Hallo Professor Bernd

    Zitat von Professor Bernd

    Für die Verwendung in meinem CallTipViewer ist das Gegenteil gewollt: Nur eindeutige Suchbegriffe! Die Suchbegriffe sind ausschließlich vollständige Funktionsnamen, keine Teile.

    Was heißt das denn? Einfach eine statische Anzeige der Funktionsbeschreibung nach der Eingabe eines Funktionsnamens? Keine markierte aktuelle Postition in den Parametern? Was ist zuvor mit Übernahme von Vorschlägen für Funktionsnamen während der Eingabe?

    Zitat von Professor Bernd

    Geschwindigkeitsvergleich

    _ArrayFindAll
    Time: 0.0148594000
    _DynArray-UDF
    Time: 0.0005477000
    Dictionary
    Time: 0.0000195000

    Die Regex Variante von AspirinJunkie aus Beitrag 35, die ich für die angebrachte Methode halten würde fehlt auch. Ist doch super easy umzusetzen und die Dateigröße mit 4000 Zeilen ist eigentlich nicht so mega groß..

  • Firefox automatisieren

    • autoiter
    • 9. März 2020 um 20:12

    Die modernen mit: WebDriver

  • Per Script Useraktivität simulieren?

    • autoiter
    • 2. März 2020 um 14:58

    Guter Hinweis Bitnugger.
    Allgemein, scheint in dem beschriebenen Szenario BlockInput aber auszuscheiden. Ich würde nicht erwarten, dass akira2012 Adminrechte hat.

  • Per Script Useraktivität simulieren?

    • autoiter
    • 2. März 2020 um 10:52

    Das ist wohl wahr :D

  • Per Script Useraktivität simulieren?

    • autoiter
    • 2. März 2020 um 10:46

    Hallo Leute,

    Ich habe dasd eben mal gecheckt BugFix

    Bei dem Skript, dass ich als erstes gepostet habe, wird die Maus hin und her bewegt. Wenn ich die Maus ganz an den rechten Rand bewege (auch per MouseMoove über die mögliche Position), landet die Maus am Ende nicht auf (FHD) Pixel 1920 sondern auf 1919 .

    In jedem Fall wird die Idle Zeit von Windows zurückgesetzt. Daher kommt auch der Screensaver nie!

    Ich verstehe auch die Diskussion um die negativen Effekte von Mausbewegung gerade nicht und wozu BlockInput. Wenn man vor der Aktion checked, ob seit längerem keine Benutzereingabe und nur dann eine Aktion ausführt, frage ich mich, was da alles passieren soll.

    In meinem Beispiel wurde 3 Minuten gewartet. Wenn in der Zeit keine Benutzereingabe stattgefunden hat, wird die Maus um einen Pixel hin und her bewegt. Wie lange dauert das (Ermittlung der Idle Zeit, Ermittlung der Mausposition, Mausbewegung hin und her)? 30 Millisekunden?

  • Per Script Useraktivität simulieren?

    • autoiter
    • 26. Februar 2020 um 19:57

    Oh je. Ich habe das Skript getestet und dachte, es ist doch doof, den Status fest zu schreiben. Besser wäre es doch weg und zurück zum aktuellen Status zu schalten.

    Laut Hilfe von Send bietet AutoIt das out of the box :) Allerdings funktioniert es nicht:

    toggle funktioniert nicht!

    Könnt ihr das nachvollziehen? (Hab nicht nach einem Ticket gesucht).

    Danach habe ich den Thread gefunden: https://www.autoitscript.com/forum/topic/12…ll-and-numlock/
    In folgendem Bsp. Skript sieht es jedenfalls gut aus:

    Code
    #include <Timers.au3>
    Global $g_iIdleMinutes = 3 ; Aktion erfolgt nach [$g_iIdleMinutes] Minuten Inaktivität
    
    HotKeySet("!{END}", "_Exit")
    
    _StartTimer()
    
    While Sleep(50)
    WEnd
    
    Func _StartTimer()
        Local $hTimer
        _Timer_SetTimer($hTimer, 1 * 1000, "_CheckActivity") ; Einmal pro Minuten
    EndFunc   ;==>_StartTimer
    
    Func _CheckActivity($hWnd, $iMsg, $iIDTimer, $iTime)
        If _Timer_GetIdleTime() > 1 * 1000 Then
            ConsoleWrite(_Timer_GetIdleTime() & @CRLF)
            Local $aStatus = _GetStatus() ; https://www.autoitscript.com/forum/topic/12056-determing-state-of-capslock-scroll-and-numlock/
            If @error Then Return ConsoleWrite("Status von ScrollLock konnte nicht ausgelesen werden.")
            Send($aStatus[0])
            Send($aStatus[1])
        EndIf
    
    EndFunc   ;==>_CheckActivity
    
    Func _GetStatus()
        Local $VK_NUMLOCK = 0x90
        Local $VK_SCROLL = 0x91
        Local $VK_CAPITAL = 0x14
    
        Local $aStatus = DllCall("user32.dll", "long", "GetKeyState", "long", $VK_SCROLL)
        If Not IsArray($aStatus) Then Return SetError(1)
    
        ReDim $aStatus[2]
    
        If $aStatus[0] = 1 Then
            $aStatus[0] = "{ScrollLock  off}"
            $aStatus[1] = "{ScrollLock on}"
        Else
            $aStatus[0] = "{ScrollLock on}"
            $aStatus[1] = "{ScrollLock off}"
        EndIf
        Return $aStatus
    EndFunc   ;==>_GetScrollLock
    
    Func _Exit()
        Exit
    EndFunc   ;==>_Exit
    Alles anzeigen
  • Per Script Useraktivität simulieren?

    • autoiter
    • 26. Februar 2020 um 19:11

    Gute Idee @Musashi

    Ich habe es gerade ausprobiert. _WinAPI_SetThreadExecutionState scheint nicht zufunktionieren. Aber Numlock klappt :)

    C
    #include <Timers.au3>
    #include <WinAPIProc.au3>
    
    Global $g_iIdleMinutes = 3 ; Aktion erfolgt nach [$g_iIdleMinutes] Minuten Inaktivität
    
    HotKeySet("!{END}", "_Exit")
    
    _StartTimer()
    
    While Sleep(50)
    WEnd
    
    Func _StartTimer()
        Local $hTimer
        _Timer_SetTimer($hTimer, 5 * 1000, "_CheckActivity") ; Einmal pro Minuten
    EndFunc   ;==>_StartTimer
    
    Func _CheckActivity($hWnd, $iMsg, $iIDTimer, $iTime)
        If _Timer_GetIdleTime() > 5 * 1000 Then
            Local $aPos = MouseGetPos()
    ;~         _WinAPI_SetThreadExecutionState(BitOR($ES_DISPLAY_REQUIRED, $ES_CONTINUOUS))
            send("{numlock on}")
            send("{numlock off}")
        EndIf
        ConsoleWrite(_Timer_GetIdleTime() & @CRLF)
    EndFunc   ;==>_CheckActivity
    
    Func _Exit()
        Exit
    EndFunc
    Alles anzeigen
  • Kreisausschnitt mittels _GDIPlus_ und PixelCheckSum

    • autoiter
    • 26. Februar 2020 um 18:01
    Zitat von Musashi

    Die Hilfe hat aber natürlich eine größere "Reichweite" ^^ .

    Vor allem ist die Hilfe auch die Referenz. Dort sollen die Angaben stimmen! Aktuell ist das schlicht nicht korrekt (auch wenn es so aussieht und in den meisten Fällen nicht auffällt).

  • Kreisausschnitt mittels _GDIPlus_ und PixelCheckSum

    • autoiter
    • 26. Februar 2020 um 17:14

    Tja, was soll man machen ^^

    Wäre es dann nicht angebracht in der AutoIt-Hilfe beim Operator / wenigstens darauf hinzuweisen, dass als Ergebnis einer Division von Ganzzahlen immer ein Wert des Typs Double geliefert wird, auch wenn AutoIt bei der Anzeige .0 wegschneidet und die Funktionen IsInt und IsFloat dich anlügen?

    water  Tweaky was haltet ihr davon ;)

  • Kreisausschnitt mittels _GDIPlus_ und PixelCheckSum

    • autoiter
    • 26. Februar 2020 um 16:41

    Haha, die verrückte Welt von AutoIt. Danke dir für den Link @Musashi.

    Ich liebe diese Sprache, weil manso schnell ans Ziel kommt. Aber bei all dem, was einem abgenommen wird, bleibt für mich dann immer mal wieder Konfusion zurück :D

    Code
    ConsoleWrite("IsInt(6/2): " & IsInt(6/2) & @CRLF)
    ConsoleWrite("IsFloat(6/2): " & IsFloat(6/2) & @CRLF)
    ConsoleWrite("Hex(6/2): " & Hex(6/2) & @CRLF)
    ConsoleWrite("Hex(3.0): " & Hex(3.0) & @CRLF)
    ConsoleWrite("Hex(3): " & Hex(3) & @CRLF)

    IsInt(6/2): 1

    IsFloat(6/2): 0

    Hex(6/2): 4008000000000000

    Hex(3.0): 4008000000000000

    Hex(3): 00000003

    Ich bin bedient :S

  • Per Script Useraktivität simulieren?

    • autoiter
    • 26. Februar 2020 um 16:22

    Hallo akira2012

    Hass mich bitte nicht. Aber ich schlage Mausbewegung vor :D

    Ich kenne nur Benutzereingaben, um das Sperren zu verhindern. Wäre aber ziemlich blöd Tastatureingaben zu simulieren, falls ein Fenster aktiv ist, dass die als Text entgegen nähme.

    Das folgende Skript (ungetestet) checkt die Inaktivitätszeit-Zeit und reagiert, wenn seit mindestens drei Minuten keine Benutzereingabe stattgefunden hat. Dann wird die Maus um einen Pixel nach rechts bewegt und wieder zurück.

    Selbst wenn genau in dem Moment ein Nutzer an den Rechner geht, sollte er das nicht merken.

    In dem Beispiel habe ich einen globalen Hotkey eingebaut. Alt+Ende beenden das Skript.

    Code
    #include <Timers.au3>
    
    
    Global $g_iIdleMinutes = 3 ; Aktion erfolgt nach [$g_iIdleMinutes] Minuten Inaktivität
    
    HotKeySet("!{END}", "_Exit")
    
    _StartTimer()
    
    While Sleep(50)
    WEnd
    
    Func _StartTimer()
        Local $hTimer
        _Timer_SetTimer($hTimer, 1 * 60 * 1000, "_CheckActivity") ; Einmal pro Minuten
    EndFunc   ;==>_StartTimer
    
    Func _CheckActivity($hWnd, $iMsg, $iIDTimer, $iTime)
        If _Timer_GetIdleTime() > $g_iIdleMinutes * 60 * 1000 Then
            Local $aPos = MouseGetPos()
            MouseMove($aPos[0] + 1, $aPos[1], 0)
            MouseMove($aPos[0], $aPos[1], 0)
        EndIf
    EndFunc   ;==>_CheckActivity
    
    Func _Exit()
        Exit
    EndFunc
    Alles anzeigen
  • Kreisausschnitt mittels _GDIPlus_ und PixelCheckSum

    • autoiter
    • 26. Februar 2020 um 16:02

    Haha, owei. Wieder ein Bsp. dafür, dass man bei AutoIt nicht zu genau hinschauen sollte :D

    Ich habe mir die Beschreibung von Hex angeschaut. Du meinst: Numbers passed as non-integers (those with decimal separator or exponent) are processed as doubles.

    Das bedeutet aber nicht, dass AutoIt alle Ergebnisse von Divisionen als Double zurück gibt, sondern nur, dass die Funktion Hex, übergebene Werte mit Dezimaltrennzeichen oder Exponent als Double behandelt.

    Ohne jetzt wie du zu genau hinzuschauen, was wirklich gemacht wird, würde ich daher sagen, die Division wird vor der Übergabe an Hex ausgeführt und Hex bekommt bei 6/2 den Int Wert 3 übergeben.

  • Kreisausschnitt mittels _GDIPlus_ und PixelCheckSum

    • autoiter
    • 26. Februar 2020 um 12:08

    Hallo BugFix

    Zitat von BugFix

    Das Ergebnis ist (auch aus Sicht der AutoItfunktion "IsInt") ein Integer, tatsächlich ergibt 6/2 aber nicht 3, sondern 3.0! Und das ist ein Double.

    Ich bin gerade hier drüber gestolpert. Autsch. Das habe ich bisher nicht gewusst. :whistling:

    Woher weißt du, dass Division immer ein Double zurück gibt?

  • PSPad4AutoIt3 (Editor IDE)

    • autoiter
    • 19. Februar 2020 um 16:10

    Hallo Professor Bernd

    Ich habe es gerade heruntergeladen. Aber ich bin etwas irritiert. Im Paket ist nur die kompilierte Exe. Könntest du die Sourcen auch unkompiliert zur Verfügung stellen?

  • Label überlappen

    • autoiter
    • 19. Februar 2020 um 16:05

    Hallo Mikki

    Ergänze mal GUICtrlSetState($Bk_Color_Menu[0], $GUI_DISABLE) nach der Erstellung des Hintergrund-Labels.

  • gut lesbare Uhr für den Desktop

    • autoiter
    • 8. Februar 2020 um 12:17

    Haha, Andy das ist ja kürzer als das Beispiel zu GUICtrlCreateButton. :D

  • Kann mein eigenes Programm nicht löschen - von Avira keine Unterstützung...

    • autoiter
    • 2. Februar 2020 um 11:32

    Ich meine Avira ;)

  • Hilfe erweitern - Include AD.au3

    • autoiter
    • 28. Januar 2020 um 18:26

    Achso, sorry. Da war mein Hinweis natürlich Quatsch. Nicht richtig gelesen. :saint:

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™