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

  • timer flackern und klickregistrierung ist träge

    • BugFix
    • 29. Mai 2014 um 22:16
    Zitat von 63rrit

    oder gibt es wege das zu umgehen?


    Wenn du davon völlig losgelöst arbeiten willst, musst du schon den Hotkey vor dem System abfangen (Hooken). Existiert dein Fenster und der Hotkey wird gedrückt nutzt du ihn und verwirfst dann diesen Hook, damit das System damit nicht weiter arbeitet.
    Das Hooken von Keyevents ist nicht allzu schwer. Die Hilfe-Bsp. sollten dir als Impression reichen. Da sich damit auch viel Schindluder treiben läßt (z.B. Keylogger) ist der Support von uns dafür sehr begrenzt.

  • timer flackern und klickregistrierung ist träge

    • BugFix
    • 29. Mai 2014 um 13:25
    Zitat von 63rrit

    3) durch klicken der tasten numblock 0,1,3,4,6,komma können timer in der
    rechten unteren bildschirmecke gestartet werden. (diese funktion wurde
    über "_IsPressed" und nicht über einen hotkeyset realisiert, da die
    timer sonst falls eine anwendung die selben hotkeys benutzt nicht gestartet werden können


    Setze dir ein paar Dummy-Ctrl auf deine Overlay-GUI.
    Diesen weist du mit GUISetAccelerators Hotkeys zu, die sind dann ausschliesslich mit dieser GUI wirksam. Dann sollten die Reaktionszeiten auch nicht mehr träge sein.

  • Der böse Onkel von nebenan...

    • BugFix
    • 29. Mai 2014 um 13:12

    Bist du auf Fatzebuck? Da kannst du doch einen ordentlichen Flame auf ihn ablassen, indem du das Geschehen nur ganz sauber dokumetiert wiedergibst. Gleichzeitig würde ich darin meine Sorge um die Sicherheit unseres Landes zum Ausdruck bringen, wenn solche anscheinend inkompetente Personen die Frechheit besitzen sich zu Dingen zu äussern, von denen sie nix verstehen.
    Und die Tatsache, dass du auf dem Lande wohnst, kannst du auch für dich nutzen. Gehe zum Bäcker, zum Fleischer und lass überall deine Version der Geschichte hören, und sag wie erschüttert du bist, dass der Bundeswehrtyp solche Lügen verbreitet.
    Ich würde dem Typen aber auch ganz klar sagen, er soll es unterlassen diese Lügen zu verbreiten. Das ist Rufschädigung (evtl. finden sich noch ein paar mehr Straftatsbestände) und dagegen wirst du dich, wenn es sein muss, auch zur Wehr setzen.
    Oder vllt. eine ganz krasse Variante: Offener Brief an den Typen mit Schilderung der Situation und der Aufforderung die Lügen zu unterlasseen. Und das Teil pinnst du im örtlichen Supermarkt oder in jedem Laden an die Wand. :D

  • Suchfunktion in meine GUI integrieren

    • BugFix
    • 25. Mai 2014 um 17:13

    Vielleicht auch von Interesse dafür: IntelliSenseBox

  • Endlosschleife beginnt nicht

    • BugFix
    • 20. Mai 2014 um 14:07
    Zitat von AspirinJunkie

    Kann man mit For-In in AutoIt eine Endlosschleife basteln?


    Verrückter Gedanke :D - ich habe noch keinen sinnvollen Ansatz gefunden. Aber ich grübel auch mal ein bischen.

  • Endlosschleife beginnt nicht

    • BugFix
    • 20. Mai 2014 um 12:56
    Zitat von kenny77

    Endlosschleife beginnt nicht


    Du hast in deinem Code ja auch keine Schleife drin. ;)
    Mögliche Schleifen sind:
    Do-Until
    While-WEnd
    For-In
    For-Next

    Schau mal in die Hilfe dazu.

  • Viele Controls sinnvoll unterbingen

    • BugFix
    • 20. Mai 2014 um 12:27

    Konzepte sind natürlich stark vom eigenen Geschmack abhängig.
    Mir persönlich gefällt nicht, wenn soviele Slider vorhanden sind. Ich bevorzuge Lösungen dieser Art:
    - jeder Parameter erhält einen Button mit Style zum Einrasten
    - auf dem Button ist der aktuelle Wert sichtbar
    - wird der Button betätigt (könnte man optisch noch aufpeppen, indem man dann einen z.B. roten Rahmen drumlegt), läßt sich der Wert ändern über:
    - ein Paar Plus-/Minus- Schaltflächen unterhalb der Parameterbutton
    Dann hast du schon gewaltig an Platz eingespart und siehst trotzdem alles auf einen Blick.
    Alternativ zu den Button kannst du auch Label verwenden oder jedes andere Control, das einen Klick verwertet. ;)

  • Textfile ins Array

    • BugFix
    • 20. Mai 2014 um 11:38

    Brauchst du bei der einfachen Struktur nicht erst in ein Array lesen und dann splitten. Kannst du mit RegExp in ein 1D-Array schreiben:

    [autoit]

    ;~ $sText = FileRead('Deine.Datei')

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

    $sText = _
    "vorname1|nachname1" & @CRLF & _
    "vorname2|nachname2" & @CRLF & _
    "vorname3|nachname3" & @CRLF

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

    $aText = StringRegExp($sText, '(.+)\|(.+)', 3)
    _ArrayDisplay($aText) ; == Index gerade + FolgeIndex bilden immer ein Paar (0 & 1, 2 & 3 ...)

    [/autoit]
  • In Excel Variable finden?

    • BugFix
    • 19. Mai 2014 um 19:03

    dirkrid: Also so wird das nichts. Bröckchen für Bröckchen kommst du rüber mir dem, was du machst. Wir können dir nicht helfen, wenn du immer nur einen Teil deines Problems schilderst. Selbstverständlich gehört das Beschaffen der Daten auch zum Problem. Also nu mal Butter bei die Fische..

  • In Excel Variable finden?

    • BugFix
    • 19. Mai 2014 um 16:58
    Zitat von dirkrid

    und der FF.au3 UDF


    Jetzt wird es ganz verzwickt. Wozu brauchst du denn hierbei eine Browser-UDF? Oder ist da noch ein Teil, den du bisher nicht beschrieben hast?

  • In Excel Variable finden?

    • BugFix
    • 19. Mai 2014 um 14:59
    Zitat von dirkrid

    die Daten werden mit iMacros von rohdaten.csv abgelesen und in ergebnis.csv eingetragen.


    Und warum nimmst du dafür iMacros? Verwende doch gleich AutoIt und übertrage die Daten genau so, wie du sie brauchst.
    Und um dir dabei zu helfen, solltest du anhand der Rohdaten mal kurz aber präzise erläutern, wo sich diese Daten in der Ergebnis-Datei wiederfinden sollen und anhand welcher Kriterien eine Auswahl zu treffen ist.

  • Prüfen ob sich 2 Grafiken überlagern

    • BugFix
    • 18. Mai 2014 um 16:56

    Bsp.:

    Spoiler anzeigen
    [autoit]

    #include <WinApi.au3>

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

    Global $tRect1 = DllStructCreate("int Left;int Top;int Right;int Bottom")
    Global $tRect2 = DllStructCreate("int Left;int Top;int Right;int Bottom")

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

    ; Grafik 1
    $left1 = 10
    $top1 = 10
    $right1 = 90 ; left + width
    $bottom1 = 60 ; top + heighth

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

    ; Grafik 2
    $left2 = 85
    $top2 = 55
    $right2 = 135 ; left + width
    $bottom2 = 105 ; top + heighth

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

    _WinAPI_SetRect($tRect1, $left1, $top1, $right1, $bottom1)
    _WinAPI_SetRect($tRect2, $left2, $top2, $right2, $bottom2)

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

    $ret = _WinAPI_IntersectRect($tRect1, $tRect2)
    If Not @error Then
    ConsoleWrite('Schnittmenge:' & @LF & _WinAPI_GetRectValue($ret) & @LF)
    Else
    ConsoleWrite('Keine Schnittmenge' & @LF)
    EndIf

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

    ;===============================================================================
    ; Function Name: _WinAPI_SetRect(ByRef $tRECT, $X1, $Y1, $X2, $Y2)
    ; Description: Befüllt eine RECT-Struktur in einem Aufruf mit Werten
    ; Parameter(s): $tRECT RECT-Struktur
    ; $X1, $Y1, $X2, $Y2 Werte des Rectangle
    ; Return Value(s): Erfolg <> 0
    ; Fehler 0 set @error 1-keine Struktur übergeben
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _WinAPI_SetRect(ByRef $tRECT, $X1, $Y1, $X2, $Y2)
    If Not IsDllStruct($tRECT) Then Return SetError(1,0,0)
    Local $ret = DllCall("user32", 'long', 'SetRect', 'ptr', DllStructGetPtr($tRECT), 'long', $X1, 'long', $Y1, 'long', $X2, 'long', $Y2)
    If @error > 0 Then Return SetError(1,@error,0)
    Return $ret[0]
    EndFunc ;==>_WinAPI_SetRect

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

    ;===============================================================================
    ; Function Name: _WinAPI_GetRectValue(ByRef $tRECT, $bArray=False)
    ; Description: Gibt die Werte einer RECT-Struktur als String(Standard) od. Array zurück
    ; Parameter(s): $tRECT RECT-Struktur, die gelesen werden soll
    ; $fArray Rückgabetyp: False(Standard)=String, True=Array
    ; Return Value(s): Erfolg Werte der RECT-Struktur
    ; Fehler 0 set @error 1-keine Struktur übergeben
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _WinAPI_GetRectValue(ByRef $tRECT, $fArray=False)
    If Not IsDllStruct($tRECT) Then Return SetError(1,0,0)
    Local $sOut = _
    DllStructGetData($tRECT, 1) & ',' & _
    DllStructGetData($tRECT, 2) & ',' & _
    DllStructGetData($tRECT, 3) & ',' & _
    DllStructGetData($tRECT, 4)
    If $fArray Then Return StringSplit($sOut, ',', 2)
    Return $sOut
    EndFunc ;==>_WinAPI_GetRectValue

    [/autoit]


    _WinAPI_IntersectRect() ist inzwischen Bestandteil der WinAPI, brauchst du also nicht extra die Funktion.

  • Prüfen ob sich 2 Grafiken überlagern

    • BugFix
    • 18. Mai 2014 um 14:29

    Wenn es zwei rechteckige Grafiken sind, kannst du die Koordinaten in Rectangle packen und vergleichen.

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name: _WinAPI_IntersectRect(ByRef $Src1Rect, ByRef $Src2Rect)
    ; Description: Ermittelt Schnittmengen zweier RECT-Strukturen
    ; Parameter(s): $Src1Rect, $Src2Rect RECT-Strukturen aus denen Schnittmengen festgestellt werden sollen
    ; Return Value(s): Erfolg RECT-Struktur der Schnittmenge
    ; Fehler 0 set @error 1-keine Struktur(en) übergeben
    ; 2-Dll-Fehler (s. @extended)
    ; 3-keine Schnittmenge
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _WinAPI_IntersectRect(ByRef $Src1Rect, ByRef $Src2Rect)
    If (Not IsDllStruct($Src1Rect)) Or (Not IsDllStruct($Src2Rect)) Then Return SetError(1,0,0)
    Local $DestRect = DllStructCreate("int Left;int Top;int Right;int Bottom")
    Local $ret = DllCall("user32", "int", "IntersectRect", "ptr", DllStructGetPtr($DestRect), "ptr", DllStructGetPtr($Src1Rect), "ptr", DllStructGetPtr($Src2Rect))
    If @error > 0 Then Return SetError(2,@error,0)
    If $ret[0] > 0 Then
    Return $DestRect
    Else
    Return SetError(3,0,0)
    EndIf
    EndFunc ;==>_WinAPI_IntersectRect

    [/autoit]
  • Funktion Exit umleiten?

    • BugFix
    • 18. Mai 2014 um 10:33

    Klick mal drauf:

    [autoit]

    OnAutoItExitRegister

    [/autoit]
  • ArrayMore.au3

    • BugFix
    • 17. Mai 2014 um 09:22
    Zitat von Bitnugger

    Bei mir funktioniert _Array2DSortFree() leider auch nicht, bekomme aber auch keine Fehlermeldung (@error = 0).


    OK, schaue es mir die Tage mal an.
    Was die anderen angesprochenen Punkte angeht: Ich hatte damals viele Versionen getestet, kann also sein, dass einige Variablen dabei "auf der Strecke blieben" und ich einfach vergaß sie zu löschen. Die anderen Sachen waren Änderungen in der Namensgebung, die ich zwar in den Funktionen ausgeführt - in der Beschreibung aber vergessen hatte. ;)

  • TimeStamp - erweitert zu kleiner Versionsverwaltung für (.au3 und .lua) alle Typen

    • BugFix
    • 16. Mai 2014 um 19:54

    - Aktuelle Version 1.2
    - Änderung in der Darstellung
    - Ordner erstellen mit shell.dll
    - inkl. Programm zum Konvertieren alter TimeStamps auf neue Version
    s. Start-Post

  • Immer mit neuer Seite in Word-Dokument beginnen - wie Seitenumbruch in Word erreichen

    • BugFix
    • 16. Mai 2014 um 09:48

    Bitte im Startpost das Präfix auf "gelöst" setzen.

  • Progressbar OCX plötzlich unbrauchbar, Subscript used on non-accessible variable

    • BugFix
    • 16. Mai 2014 um 09:38

    Das Array wird erstellt beim generieren der Progressbar, dieser Arrayname existiert nur als Parametername innerhalb der Funktionen - übergeben wird ByRef das Array aus der Rückgabe der Funktion

    _GuiCtrlCreateOCXProgress
    [autoit]

    Func _GuiCtrlCreateOCXProgress($x, $y, $width, $height, $Scrolling = 0, $Orientation = 0)
    Dim $ar[2]
    $ar[0] = ObjCreate("Proyecto2.XP_ProgressBar")
    If @error Then Return SetError(1,0,0)
    $ar[0].Scrolling = $scrolling
    $ar[0].Orientation = $Orientation
    $ar[1] = GUICtrlCreateObj($ar[0],$x,$y,$width,$height)
    Return $ar
    EndFunc

    [/autoit]

    Setze in dieser Funktion mit dem Debuggen an - prüfe jeden Befehl auf Erfolg.

  • Progressbar OCX plötzlich unbrauchbar, Subscript used on non-accessible variable

    • BugFix
    • 16. Mai 2014 um 09:19

    Ohne mir das im Detail anzusehen: Die Fehlermeldung sagt dir, dass $ProgressArray kein Array ist (oder gar nicht existiert). Denn der Fehler tritt auf beim Versuch auf ein Index-Element dieser Variablen zuzugreifen. Also setze an dieser Stelle mit der Fehlersuche an. Gehe Schritt für Schritt rückwärts zu der Stelle an der dieses Array erstellt werden soll/muß. Dort geht was daneben.

  • Dictionary übergeben ByRef Problem

    • BugFix
    • 16. Mai 2014 um 09:15

    Wenn ich mich recht erinnere, gab es damals eine Beta, die eine derartige Syntax erlaubte. Imho ist das aber keine derzeit gültige Syntax.

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™