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

  • _GDIPlus_GraphicsDrawCurve ohne 'Abrundungen'

    • alpines
    • 1. Februar 2020 um 16:49
    Zitat von Schmunke

    die x,y-Koordinaten sind die gleiche, mit denen die Linien gezeichnet werden. Ich verwende ja das selbe Array (die Koordinaten liegen in einem Array).


    Das kann es also nicht sein ...

    Hast du meinen Beitrag überhaupt gelesen?

    Zitat von Schmunke

    ... außerdem - ich oberen Teil (schräger Graph) passt es doch ! ... und anschließend nicht mehr ???? hhmmmm ..

    Sollte auch nicht überraschen, es sieht so aus als ob es passt, aber es passt nicht. Die Linie davor verläuft im selben Winkel, deshalb scheint es so aus als ob die Ellipse auf der Koordinate liegt, tut sie aber nicht.

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    $Form1 = GUICreate("Form1", 615, 437, 192, 124)
    GUISetState(@SW_SHOW)
    
    
    #include <GDIPlus.au3>
    
    _GDIPlus_Startup()
    
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($Form1)
    
    Local $aRandomDots[30][2]
    
    
    For $i = 0 To UBound($aRandomDots) - 1
        $aRandomDots[$i][0] = $i * (615 / UBound($aRandomDots))
        $aRandomDots[$i][1] = Random(0, 437, 1)
    Next
    
    For $i = 0 To UBound($aRandomDots) - 2
        _GDIPlus_GraphicsDrawLine($hGraphics, _
            $aRandomDots[$i][0], _
            $aRandomDots[$i][1], _
            $aRandomDots[$i + 1][0], _
            $aRandomDots[$i + 1][1] _
        )
    
        _GDIPlus_GraphicsDrawEllipse($hGraphics, $aRandomDots[$i][0], $aRandomDots[$i][1], 10, 10)
    
    Next
    MsgBox(0, 0, "Falsche Darstellung")
    
    _GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)
    For $i = 0 To UBound($aRandomDots) - 2
        _GDIPlus_GraphicsDrawLine($hGraphics, _
            $aRandomDots[$i][0], _
            $aRandomDots[$i][1], _
            $aRandomDots[$i + 1][0], _
            $aRandomDots[$i + 1][1] _
        )
    
        _GDIPlus_GraphicsDrawEllipse($hGraphics, $aRandomDots[$i][0] - 10/2, $aRandomDots[$i][1] - 10/2, 10, 10)
    
    Next
    MsgBox(0, 0, "Korrekte Darstellung")
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
        EndSwitch
    WEnd
    Alles anzeigen
  • _GDIPlus_GraphicsDrawCurve ohne 'Abrundungen'

    • alpines
    • 1. Februar 2020 um 16:14

    Spontan würde ich mal raten, dass die Koordinaten der Ellipsen falsch sind. Das sind x,y-Koordinaten für den das Boundingbox-Rectangle in welcher die Ellipse gezeichnet wird.

    Du müsstest die Ellipse also um Width/2 und Height/2 nach links respektive oben verschieben damits zentriert auf dem Punkt ist.

  • _GDIPlus_GraphicsDrawCurve ohne 'Abrundungen'

    • alpines
    • 31. Januar 2020 um 20:31

    Wie wärs denn mit _GDIPlus_GraphicsDrawPath?

  • Text ersetzen in RTF mit korrekten Umlauten

    • alpines
    • 31. Januar 2020 um 11:10
    Zitat von Schokolade

    Danke für eure schlauen Sprüche ähm Tipps ;) Ich habe es jetzt ohne die _GUICtrlRich... Befehle hinbekommen 8)

    Kannst du natürlich auch machen, solltest aber im Hinterkopf behalten, dass du dir vielleicht unabsichtlich andere Elemente in deiner RTF-Datei zerschießt.

  • Text ersetzen in RTF mit korrekten Umlauten

    • alpines
    • 31. Januar 2020 um 10:42
    Zitat von Schokolade

    Ich möchte aber Text ersetzen der an unterschieldichen Stellen vorkommt.

    Ja nun rate mal was du machen kannst nachdem du den Text markiert und ersetzt hast? :_rolleyes: ;)

    Such mal nach _GUICtrlRichEdit_StreamFromFile!

  • Text ersetzen in RTF mit korrekten Umlauten

    • alpines
    • 31. Januar 2020 um 09:54
    Zitat von Schokolade

    Und _GUICtrlRichEdit_ReplaceText hatte ich auch schon gefunden nur weiß nicht wie ich das nutzen soll, da gibts ja keine Parameter für "zu ersetzender Text" und "Ersatz Text"...

    Ein kurzer Blick ins Hilfebeispiel ist sollte die nötige Erleuchtung bringen: https://www.autoitscript.com/autoit3/docs/l…ReplaceText.htm

  • drücken der <ENTER> - Taste in einem GUICtrlCreateInput abfangen

    • alpines
    • 24. Januar 2020 um 16:17

    Du deklarierst die Variable $hEnterDummy und packst sie direkt ins Acceleratorarray, jedoch nicht als Referenz sondern einfach nur als Wert.

    Der Dummy wurde aber noch nicht erzeugt, folglich steht im Array nur eine 0, darfst den Wert des Controls im Acceleratorarray erst zuweisen wenn du das Control auch definiert hast.

  • drücken der <ENTER> - Taste in einem GUICtrlCreateInput abfangen

    • alpines
    • 24. Januar 2020 um 12:17

    Brauchst du denn eine spezielle Reihenfolge oder so? Ansonsten könntest du ja einfach mit Accelerators die Enter-Taste abfragen und dann durchhüpfen, etwa so:

    C
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    $Form1 = GUICreate("Form1", 303, 309, 192, 124)
    $Input1 = GUICtrlCreateInput("Input1", 80, 24, 121, 21)
    $Input2 = GUICtrlCreateInput("Input2", 80, 80, 121, 21)
    $Input3 = GUICtrlCreateInput("Input3", 80, 144, 121, 21)
    $Input4 = GUICtrlCreateInput("Input4", 80, 208, 121, 21)
    
    $hDummy = GUICtrlCreateDummy()
    
    Local $aAcc[1][2] = [ ["{ENTER}", $hDummy] ]
    GUISetAccelerators($aAcc, $Form1)
    
    GUISetState(@SW_SHOW)
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $hDummy
                ControlSend($Form1, "", "", "{TAB}")
    
        EndSwitch
    WEnd
    Alles anzeigen
  • Textdatei Stringsplit Array

    • alpines
    • 22. Januar 2020 um 13:41
    Zitat von shakoon

    ich habe mir schon alles angeschaut, komme aber irgendwie auf keine Lösung im moment :(

    Das sollte auch nicht weiter überraschen, dein gepostetes Skript ist auch so nicht lauffähig.

    Außerdem verwendest du StringStripWS völlig falsch, guck dir mal den zweiten Parameter in der Dokumentation genau an, und den Wert den du versuchst zu übergeben.

    Anschließend versuchst du den String mit @CRLF zu splitten obwohl du vorher mit StringStripWS versucht hast die Whitespaces zu entfernen. Du übersiehst jedoch, dass Zeilenumbrüche ebenfalls Whitespaces sind.

  • Textdatei Stringsplit Array

    • alpines
    • 22. Januar 2020 um 12:18
    Zitat von shakoon

    Wie kann ich sowas machen? StringSplit mit dem "," getrennt bekomme ich hin, aber die nächste zeile geht irgendwie nicht.

    Wo ist denn dein Skript?

  • HTTP und SciTE

    • alpines
    • 21. Januar 2020 um 19:27
    Zitat von Schmunke

    Anscheinend gibt es diese Dateien gar nicht bei der Installation von AutoIt.

    Hast du denn SciTE4AutoIt mitinstalliert?

  • HTTP und SciTE

    • alpines
    • 20. Januar 2020 um 14:01

    Die Calltips kannst du hier einfügen C:\Users\<UserName>\AppData\Local\AutoIt v3\SciTE\au3.user.calltips.api.

    Hier mal das Format wie es aussehen soll (hab ein Teil von meinem einfach mal eingefügt)

    Code
    _ArraySortStable2D(ByRef $aArray, $iCol[, $iStart = Default[, $iEnd = Default[, $bDescending = False]]]) Sorts a valid two dimensional array with a stable mergesort implementation. (Requires: #include <_ArraySortStable2D.au3>)
    _BASS_Apply3D () Applies changes made to the 3D system.  (Requires: #include "BASS.au3")
    _BASS_ASIO_ChannelEnable ($input, $channel[, $proc = 0[, $user = 0]]) Enables/disables processing of a channel. (Requires: #include "BASSASIO.au3")
    _BASS_ASIO_ChannelEnableMirror ($channel, $input2, $channel2) Enables an output channel, and makes it mirror another channel. (Requires: #include "BASSASIO.au3")
    _BASS_ASIO_ChannelGetFormat ($input, $channel) Retrieves a channel's sample format. (Requires: #include "BASSASIO.au3")
    _BASS_ASIO_ChannelGetInfo ($input, $channel) Retrieves information on a channel. (Requires: #include "BASSASIO.au3")
    _BASS_ASIO_ChannelGetLevel ($input, $channel) Retrieves the level (peak amplitude) of a channel. (Requires: #include "BASSASIO.au3")
    _BASS_ASIO_ChannelGetRate ($input, $channel) Retrieves a channel's sample rate. (Requires: #include "BASSASIO.au3")

    Die Datei abspeichern und SciTE neustarten, dann sollten die Calltips auch ganz normal funktionieren.

  • ListView "aufklappen"

    • alpines
    • 15. Januar 2020 um 20:26
    Zitat von DasIch

    Kann ich GUICtrlSetResizing()auch für die komplette Anwendung übernehmen, damit ich das nicht bei jedem Ctrl einzeln machen muss?

    Du kannst einen Default Resizing Mode einstellen und dieser sollte dann für alle Controls übernommen werden nachdem dieser gesetzt wurde.

  • Im Hintergrund prüfen, ob sich ein Dateiattribut geändert hat

    • alpines
    • 8. Januar 2020 um 20:05
    Zitat von DasIch

    GUISetOnEvent

    Sollte auch nicht weiter überraschen, da GUISetOnEvent nur für Events des Fensters zuständig sind und nicht für Controls. Du hättest GUICtrlSetOnEvent verwenden müssen.

  • Ini Read geht teilweise nicht

    • alpines
    • 7. Januar 2020 um 10:54
    Zitat von Echree

    danke euch aber leider behebt das das problem nicht.


    in dem versuch arbeite ich mit $spdf. Dies geht leider auch nicht

    Dann steckt der Wurm woanders drin, denn der Code den du gepostet hast würde funktionieren (ohne das ganze Excel und GUI Zeugs) wenn man die Funktion nach den IniReads ausführt.

  • Im Hintergrund prüfen, ob sich ein Dateiattribut geändert hat

    • alpines
    • 7. Januar 2020 um 10:43
    Zitat von DasIch

    Wie schaffe ich es, dass das Script im Hintergrund _Counter() ausführt ohne dabei das GUI zu freezen?

    Verwende den OnEventModus für deine GUI, dann ist die Nachrichtenschleife praktisch nicht mehr existent und entkoppelt von deinem Sleep für die Prüfung.

    Wenn du das ganze auf die Spitze treiben willst kannst du auch sowas wie SHNotify verwenden, womit Windows dann eine Eventfunktion von dir aufruft, wenn an einer Datei innerhalb eines Ordners etwas verändert wurde.

  • Ini Read geht teilweise nicht

    • alpines
    • 7. Januar 2020 um 10:40
    Zitat von Echree

    mexel

    Zitat von Echree

    mexcel

  • Explorer halber Bildschirm

    • alpines
    • 25. Dezember 2019 um 13:39
    Zitat von Tweaky

    Also meint ihr man sollte Local $iFrame = _WinAPI_GetSystemMetrics($SM_CXDLGFRAME) verwenden?

    Da bekomme ich 3 raus. Anhand der ausgelesenen Kordinaten wären es jedoch 7.

    Ich habs in meinen Skripten immer so gelöst:

    AutoIt
    #cs _GUI_GetBorderSize($hGUI)
    
        Wieso nutzen wir nicht SystemMetrics statt WinGetPos - WinGetClientSize?
            Da verschiedene Fenster verschiedene Styles haben, und dementsprechend auch andere Ränder
            ist es viel zu kompliziert das alles abzufragen, stattdessen subtrahieren wir hier die Werte einfach.
    
        Achtung: Beim WinMove nach dem WM_DPICHANGED ist Titelleiste immer noch groß.
                 Erst beim 2. WinMove wird die Titelleiste kleiner.
    #ce
    Func _GUI_GetBorderSize($hGUI)
        Local $aClientSize = WinGetClientSize($hGUI)
        Local $aSize = WinGetPos($hGUI)
    
        Local $aReturn[2] = [ $aSize[2] - $aClientSize[0], $aSize[3] - $aClientSize[1] ]
        Return $aReturn
    EndFunc
    Alles anzeigen
  • Explorer halber Bildschirm

    • alpines
    • 25. Dezember 2019 um 10:44

    Windows 10 zeigt die Ränder nicht mehr beim normalen Style an. Ich glaube nur noch bei einem bestimmten Style oben (da bin ich mir aber nicht ganz sicher).

    Deshalb ist das Fenster korrekt positioniert, denn du kannst dort es ja resizen.

  • Extensa - Hotkeys für unterschiedliche Eingabegeräte trennen

    • alpines
    • 19. Dezember 2019 um 22:53
    Zitat von Xenon

    Erst einmal ein herzliches Dankeschön für dieses Programm! :thumbup:8)

    Freut mich sehr, wenn es dir gefällt!

    Zitat von Xenon

    Wie ich sehe, war auf deinem Numpad die Taste laut Aufklebern auch nicht umgemappt?

    Korrekt, die Taste wurde nämlich (wie die anderen ungemappten) komischerweise nicht erkannt, deshalb konnte ich das auch nicht umbelegen.

    Ich schätze mal es handelt sich um spezielle Tasten, die nicht ohne weiteres umbelegbar sind.

    Zitat von Xenon

    Ich vermute mal, das basiert irgendwie auf dem gleichen Grund wie die Einschränkung bei der Standardfunktion HotKeySet?

    Nicht ganz, der verwendete Treiber (Interception) arbeitet etwas tiefergreifender und fängt die Eingaben ab bevor sie überhaupt an Windows gesendet werden.

    Mit dem Treiber ist es auch möglich ein gesendetes 'X' abzufangen und es als 'Y' weiterzusenden.

    Zitat von Xenon

    Hat jemand eine Idee für einen Workaround?

    Falls das Verwenden der Taste leider nicht möglich ist, weiß jemand, warum diese Taste von Windows so besonders behandelt wird? Das würde mich mal interessieren.

    Mich auch, vielleicht kann ich das dann ja einbauen wenn es tatsächlich noch einen Weg geben sollte.

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™