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

  • Doodle Jump gesucht

    • alpines
    • 7. Oktober 2018 um 10:34
    Zitat von Tuxedo

    Muss ich da jetzt unbedingt eine alte Autoit Version auftreiben, oder habe ich andere Möglichkeiten das korrekt zum Laufen zu bringen.

    Das sind nur Kleinigkeiten die du ändern musst:

    1. $ghGDIPdll zu $__g_hGDIPdll umbenennen
    2. Z. 2146 ein Leerzeichen vor dem Then einfügen
    3. _GDIPlus_GraphicsRotateTransform löschen
    4. _GDIPlus_GraphicsResetTransform löschen
    5. _GDIPlus_GraphicsTranslateTransform löschen
    6. _GDIPlus_Startupdll löschen und den Funktionsaufruf zu _GDIPlus_Startup() ändern

    und schon läufts bei mir (3.3.14.2).

  • INIRead -> Array -> vergleichen -> INIWrite

    • alpines
    • 4. Oktober 2018 um 22:46
    Zitat von dieselwiesel

    Wenn ich das so mache u. ne Datei fehlt, habe ich ne leere Zeile drin.

    Ganz genau, ich nehme mal stark an, dass du keine leeren Ini-Datensätze hast, entweder fehlt die Datei oder der Inhalt ist vorhanden.

    Wenn du im Array einen leeren Index findest, so hat die Datei vermutlich nicht existiert oder es ist sonst wie ein Fehler aufgetreten, das hängt ganz davon ab wie du das ganze implementieren möchtest, da gibt es nicht nur einen Weg.

    So wie du das gelöst hast kann man das deutlich kürzen.

    Was ist denn wenn die letzte Datei als drive kein C: hat sondern D:? Dein Skript vergleicht doch nichts, das liest einfach nur den Wert in BASIS aus und hängt sie alle hintereinander,

    Wo speicherst du denn was ab? Wo überprüfst du ob da unterschiedliche Werte vorhanden sind?

  • INIRead -> Array -> vergleichen -> INIWrite

    • alpines
    • 4. Oktober 2018 um 16:06
    Zitat von dieselwiesel

    Wenn das automatisch erweitert werden soll, wird das doch per ReDim gelöst

    Ganz genau, du kannst auch vorher einfach die Größe festlegen indem du alle Ini-Dateien auflistest, größer kann das Array ja nicht sein.

  • INIRead -> Array -> vergleichen -> INIWrite

    • alpines
    • 4. Oktober 2018 um 12:16
    Zitat von dieselwiesel

    Wenn ich vorher eines erstelle, jedoch eine/mehrere/alle INI Dateien nicht vorhanden sind bleibt das ja alles leer?!

    Du erstellst erst das Array und fütterst es mit den Daten aus den einzelnen Ini-Dateien.

    Jetzt prüfst du nach ob die entsprechenden Werte überhaupt vorhanden sind, ob sie verschieden sind und speicherst dementsprechend ab.

    Wenn ein Eintrag nicht vorhanden ist, dann speicherst du den Wert eben nicht ab oder erzeugst direkt keine Ini-Datei (weiß jetzt nicht genau wie das sein soll).

  • INIRead -> Array -> vergleichen -> INIWrite

    • alpines
    • 4. Oktober 2018 um 11:05
    Zitat von dieselwiesel

    Local $sFiles[5] = [[4], ["1.ini"], ["2.ini"], ["3.ini"], ["4.ini"]]

    Zitat von dieselwiesel

    For $i = 1 To UBound($sFiles) - 1

    :rofl:

    _____

    Der Ansatz ist ja schon mal nicht schlecht, alle Dateien durchgehen und die Ergebnisse abspeichern.

    Nur hast du keine Ahnung wie du die Vergleiche anstellen sollst, aber das ist kein Problem.

    Erstell dir ein Array mit so vielen Indizes wie Werte die du vergleichen möchtest und füg noch eine Dimension hinzu, die sollte dann so groß sein, wie viele Ini-Dateien du hast.

    Wenn du dann anschließend alles in das Array eingelesen hast kannst du mit einer doppelten For-Schleife die Werte vergleichen.

    Beispielarray:

    array[0][0] = ini1 drive

    array[0][1] = ini1 typ

    ...

    array[1][0] = ini2 drive

    Und während du die einzelnen Indizes durchgehst und für einen Wert alle Dateien abgeglichen hast, kannst du parallel die Werte immer speichern.

  • [gelöst] "Desktop-Link" unter Win10

    • alpines
    • 2. Oktober 2018 um 21:13
    Zitat von Musashi

    Einige modifizieren daher den Threadtitel, z.B. zu -> [Gelöst] Desktop-Link unter Win 10

    Hab ich mal gemacht, kann vielleicht dem einen oder anderen sicherlich weiterhelfen.

  • Werte aus ListBox und ComboBox

    • alpines
    • 2. Oktober 2018 um 09:36

    Wozu nutzt du denn WinList und WinGetState? AutoIt hat doch bereits UDFs die dir das Zählen komplett von der Hand abnehmen:

    AutoIt
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <GuiComboBox.au3>
    #include <WindowsConstants.au3>
    
    $Form1 = GUICreate("Form1", 210, 220, 192, 124)
    $List1 = GUICtrlCreateList("", 40, 16, 121, 97)
    GUICtrlSetData(-1, "1|2|3|4|5")
    $Combo1 = GUICtrlCreateCombo("Combo1", 32, 136, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "1|2|3|4|5")
    $Button1 = GUICtrlCreateButton("Button1", 32, 176, 145, 33)
    GUISetState(@SW_SHOW)
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $Button1
                $iLines = _GUICtrlListBox_GetCount(ControlGetHandle("Form1", "", "[CLASS:ListBox; INSTANCE:1]"))
                $iLines2 = _GUICtrlComboBox_GetCount(ControlGetHandle("Form1", "", "[CLASS:ComboBox; INSTANCE:1]"))
    
                MsgBox(0,0, "List:" & $iLines & @CRLF & "Combo:" & $iLines2)
    
        EndSwitch
    WEnd
    Alles anzeigen
  • WinHttp über https

    • alpines
    • 30. September 2018 um 15:55

    Du verbindest dich auf den Port 80 und schickst ganz normale Requests ohne SSL ab, was erwartest du denn?

    _WinHttpConnect -> Port 443

    _WinHttpSimpleSSLRequest verwenden, ist einfacher als ständig ReceiveResponse + ReadData.

  • WinHttp über https

    • alpines
    • 30. September 2018 um 11:27

    Welche Seite? Welches Skript?

    Wir können dir da so gut wie keine Auskunft geben wenn du uns nicht ein bisschen weiterhilfst.

  • Mausrad deaktivieren

    • alpines
    • 29. September 2018 um 19:18

    Es gibt eine WM die du abfangen kannst, wenn du den Wert veränderst und die Standardnachricht nicht ausführen lässt sollte das eigentlich klappen.

    https://docs.microsoft.com/en-us/windows/…v/wm-mousewheel

  • StringFormat mit anderer Syntax

    • alpines
    • 29. September 2018 um 13:36
    Zitat von Andy

    Mir kommt (genau wie dir) überhaupt nicht in den Sinn, was geschweifte Klammern in einem mit Variableninhalten anzuzeigenden und zu formatierenden TEXT (!) zu tun hätten....

    Das kann bei einem JSON-String schon mal schnell nach hinten losgehen.

    Ich bin selbst kein Fan von StringFormat, da mir das Syntaxhighlighting beim Verketten viel hilfreicher erscheint.

    Klar, ich setz zwar ein bisschen mehr Zeichen um alles hinzubiegen aber mir wird farblich markiert was wo eingetragen wird.

  • kann _ReplaceStringInFile komplexe Suchen durchführen ala StringRegExp(Replace) ?

    • alpines
    • 29. September 2018 um 11:22

    Schau dir mal FileSetPos an, damit kannst du den Zeiger der aktuellen Dateiposition verändern.

  • StringFormat mit anderer Syntax

    • alpines
    • 28. September 2018 um 19:52

    Wozu die geschweiften Klammern dahinter, deine UDF soll doch extra hinter dem Formatzeichen den Inhalt bekommen also sind die doch überflüssig.

    Finde diese Syntax ehrlich gesagt ziemlich bescheiden aber wers mag.

    Für dein Beispiel würde ich aber aber nicht StringFormat nehmen sondern viel lieber ExpandVarStrings, ist kürzer und liest sich besser, naja Geschmackssache halt:

    @Mon, @MDay, @Hour, @Min, @Sec muss man übrigens nicht formatten, die sind alle zweistellig.

    AutoIt
    Opt("ExpandVarStrings", 1)
    
    Global $sNameProcess = "Solitair.exe"
    
    Global $sResult = "[@MDAY@.@MON@.@YEAR@ @HOUR@:@MIN@:@SEC@] Der Prozeß ""$sNameProcess$"" wurde vom User '@UserName@@@@LogonDomain@' gestartet."
    ConsoleWrite($sResult & @CRLF)
  • DrawFrame / Deckende Linien zeichnen

    • alpines
    • 26. September 2018 um 20:44
    Zitat von Nitram

    weis vieleicht jemand etwas zu den anderen Fragen?

    Hatte das am Wochenende nur überflogen aber jetzt kann ich dir beim Rest auch helfen.

    Zitat von Nitram

    Windows scheint jede Linie mit „Extension“ zu zeichnen, also mit mindestens einer halb transparenten Linie. Eigentlich möchte ich einfach – z.B. wie in Paint - eine x Pixel breite, 100 % deckende Linie zeichnen. Ist das möglich bzw. wie stelle ich das ein?

    Was meinst du denn mit Extension? Wenn ich mit _GDIPlus_GraphicsDrawLine zeichne, dann habe ich wirklich nur auf dem Pfad die schwarzen Pixel und keine halbschwarzen durch Antialiasung oder so.

    Zitat von Nitram

    beim rumspielen hatte ich den Eindruck das Linien nicht an jeder Koordinate möglich sind. Stimmt das?

    Wieso sollte das nicht möglich sein? Hier mal ein Beispiel. Um Gottes Willen auf keinen Fall so programmieren!!! Das ist nur ein Mittel zum Zweck der Verdeutlichung, dass es möglich ist).

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    
    Global $iWidth = 256
    Global $iHeight = 256
    
    _GDIPlus_Startup()
    
    Global $hGUI = GUICreate("Gradient", $iWidth, $iHeight)
    GUISetState(@SW_SHOW, $hGUI)
    
    Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    
    For $i = 0 To $iWidth - 1
        For $j = 0 To $iHeight - 1
            Global $hPen = _GDIPlus_PenCreate(0xFF000000 + BitShift(Mod($i, 256), -16) + Mod($j, 256))
            _GDIPlus_GraphicsDrawLine($hGraphics, $i, $j, $i + 1, $j, $hPen)
            _GDIPlus_PenDispose($hPen)
        Next
    Next
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                _GDIPlus_GraphicsDispose($hGraphics)
                _GDIPlus_Shutdown()
                Exit
    
        EndSwitch
    WEnd
    Alles anzeigen
    Zitat von Nitram

    welcher Weg ist sinnvoller weiter zu verfolgen? GDI+ oder als Picture-Objekt?
    ist dort ein unterschied? / Vor/Nachteile?

    Kommt ganz darauf an was du machen willst, das Picture-Objekt kann nur Bilder darstellen mehr nicht.

    Ob du nun ein Bild in Gdi+ zeichnest und direkt anzeigst oder es als tmp.jpg speicherst und dann im Pic-Objekt speicherst (letzteres kann durchaus Vorteile haben!!) ist eher Geschmackssache.

  • Au3Check, Hilfe und Intellisense sind sich uneinig

    • alpines
    • 26. September 2018 um 16:36
    Zitat von autoiter

    Keine Ahnung, was da beim Update passiert ist, dass dein Intellisense dir noch die alten Parameter anzeigt.

    Ich schätz mal das VSCode Plugin wurde auf die neue Definition nicht angepasst.

  • Au3Check, Hilfe und Intellisense sind sich uneinig

    • alpines
    • 26. September 2018 um 16:31

    Hast du mehrere Definitionen von ArrayDisplay? Vielleicht eine eigene? Wenn ja, dann musst du sie umbenennen, da AutoIt keine Funktionsüberladung unterstützt.

    Eventuell hast du eine alte Version von AutoIt verwendet die solche Parameter noch hatte und beim Update auf die 3.3.14.5 ist dann das Skript kaputtgegangen.

  • MasterCode

    • alpines
    • 26. September 2018 um 15:44
    Zitat von Oscar

    Welche "SciTE4AutoIt"-Version verwendest Du?

    Ich glaube das mit ProductName kam erst mit einer aktuellen Version.

    Zur Not lass die Zeile weg. Hat mit dem Programm an sich eh nichts zu tun.

    Der Compiler kanns aber, verwende /productname <asd>

  • Ich möchte gerne Notepad++ (NPP, Notepad Plus Plus) als Editor verwenden!?

    • alpines
    • 25. September 2018 um 17:37

    Du kannst dir auch mal VSCode anschauen, das hat ein integriertes Pluginsystem womit du mit einem Klick ganze Sprachhighlighter, Autocomplete und Debugtools installieren kannst.

    Npp wird mit AutoIt nie genutzt, da SciTE4AutoIt.exe einfach das Mittel der Wahl ist.

  • Kodiform wert erhalten

    • alpines
    • 24. September 2018 um 22:47
    Zitat von kaynewild

    wenn ich morgen zu hause bin, poste ich nachfolgend mal meinen code, es sei denn ihr sagt mir nun "hau ab für leute die nur proggen um zu bescheißen haben wir keine lust" Greetz

    So steht es, eloquenter formuliert, in unseren Forenregeln.

  • Schreiben/Lesen eines Array-Wertes aus einer Datei

    • alpines
    • 24. September 2018 um 09:56
    Zitat von Lashandan

    Und für alle weiteren "Sections" kann man ja einfach den Wert "Klicks" ändern und kann mehrere Einträge in der Ini speichern.
    Danke euch für das befreien meiner Barriere

    Tipp fürs nächste Mal, prüfe nach was du von den jeweiliigen Funktionen alles zurückbekommst, und um welche Typen es sich handelt, dann findet man sowas ziemlich schnell.

    Ich hab den Thread für dich mal auf [gelöst] gesetzt.

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™