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. De Rand Ere

Beiträge von De Rand Ere

  • Ordner per Drag & Drop in ListView einfügen...

    • De Rand Ere
    • 24. Januar 2014 um 02:30

    Hallo zusammen,

    kürzlich hatte ich zu einigen MP3-Dateiproblemen angefragt. Das Ganze läuft so auch gut.
    Nun bin ich am Feinschliff und bin da auf ein Problem gestoßen.
    Ich wähle nach und nach einzelne Ordner mittels FileSelectFolder aus und ordne diese einem LiestView zu. Daraus wird dann ein Profil erstellt. Das geht auch prima... ist aber sehr umständlich.
    Ich habe nun hier im Forum ca. 2h gesucht. Aber außer daß ich mit einem DLL-Aufruf (shell32) arbeiten muß hab keinen richtigen Ansatz gefunfden.

    Also:
    Ich habe ein leeren ListView mit 3 Spalten und möchte in die erste Spalte per d&d einen Ordner aus einem externem Programm (zB Explorer oder Totalcommader usw.) einfügen. ListView hab ich zum d&d mit dem Style $LVS_EX_HEADERDRAGDROP frei gegeben....

    Und an diesem Punkt bin ich gegen die Wand gelaufen... ich komm nicht weiter...

    Könnt ihr mir bitte eine kurtze Strategie aufzeigen, wie sowas gemacht wird?
    Das ist sicher nicht kompliziert. Oder anders .. ich hab die Tür in der Wand nicht gesehen...

    Ich dank euch schon mal....

  • mp3-Dateien mit "Zufall" neu sortieren

    • De Rand Ere
    • 12. Januar 2014 um 17:14

    Mit FileCopy() muß ich die Datei 2x "anfassen". Das erste Mal beim Kopieren, das zweite Mal beim Ändern des Zeitstempels. FileCopy hat keine Option um der Kopie die Zeit von "Jetzt" zuzuweisen. Deshalb suchte ich ja nach einer RAM-Disk-Lösung. FileOpen simuliert diese nun. Funktioniert auch prima. Nur die Frage zur FileFlush-Funktion ist noch ungeklärt....

  • mp3-Dateien mit "Zufall" neu sortieren

    • De Rand Ere
    • 11. Januar 2014 um 12:09

    So, nu hab ich es geschaft. Hat zwar ein paar Stunden (mit Unterbrechnungen) gedauert, bis ich verstand wie der Ablauf ist und es dann auch noch gefunzt hat. Sind auch nur ein paar Zeilen. Und die Zeitersparnis ist gigantisch!!! :rofl: Bei 4GB über USB auf microSD mit Adapter geschrieben spare ich ganze 2:30 min. Es dauert jetzt also nur 26 statt 28:30 Minuten. Aber - wieder was gelert. :thumbup:

    Spoiler anzeigen

    Func DateiKopieren($vDateiQuelle, $vDateiZiel)
    Local $hDatei=FileOpen($vDateiQuelle,16)
    Local $hDateiZ=FileOpen($vDateiZiel,2)
    Local $vI=FileWrite($hDateiZ,Fileread($vDateiQuelle))
    ;FileFlush($hDateiZ)
    FileClose($hDateiZ)
    ;FileFlush($hDatei)
    FileClose($hDatei)
    Return $vI
    EndFunc

    Was mir noch nicht klar ist: Muß ich den Befehl FileFlush() nun ausführen??? ?( Erste Tests zeigten ein 300MB geringeren RAM-Verbrauch. Die Geschwindigkeit ändert sich dabei nicht.

    Danke Euch

  • mp3-Dateien mit "Zufall" neu sortieren

    • De Rand Ere
    • 9. Januar 2014 um 22:57

    Hmm, diese Variante simuliert eine RAMDISK. Ich muß diese nicht erst installieren. Mein Problem hier - ich hab mich mit dem binären Einlesen von Daten noch nicht beschäftigt. Aufgrund Deiner Anregung hab ich im Help gestöbert aber keine Funktion gefunden, die das macht. Ich fand nur FileOpen (oder so... ist aber für TXTs gedacht). Für eine kurz "Einführung" währ ich dankbar. ;)

  • mp3-Dateien mit "Zufall" neu sortieren

    • De Rand Ere
    • 7. Januar 2014 um 23:47

    Das ist richtig. Aber die Schreibgeschwindigkeit auf HDD bzw RAM (RAMDisk) ist wesentlisch höher als die Datei auf einer micoSD/SD zu verändern. Deshalb will ich die Datei erst mal verändern und dan erst auf die SD-Karte verschieben/kopien.

  • mp3-Dateien mit "Zufall" neu sortieren

    • De Rand Ere
    • 7. Januar 2014 um 22:42

    Oscar

    Danke Oscar, das war die richtige Anregung. Der Zeitstempel der Datei ist das Kriterium zum Sortieren. Ich war der Meinung, daß der Zeitstempel beim Kopieren neu gesetzt wird. Scheinbar nicht bzw. war das Script so aufgebaut, daß von A nach Z abgearbeitet wurde. Beim händischen Kopieren einiger Dateien hab ich dann gesehen, daß der Zeitstempel der Originaldatei übernommen wurde.

    Also hab ich jetzt mit Hilfe des Zufalls eine Datei ausgewählt und hab ihr den Zeitstempel von JETZT verpasst. Und siehe da .... ES GEHT -> ERFOLG 100%
    Ich kann alle anderen Dateimanipulationen weglassen. Das spart Unmengen an Zeilen :thumbup:

    Erstaunlich: Sobald man es richtig mach, funktioniert es auch.... :rolleyes:

    Die Funktion FileSetTime() scheint aber sehr zeitaufwendig zu sein. Ablauf z.Z: OrgDatei ins Temp - hier erfolg das Setzten des Zeitstempels - dann Move auf microSd-Karte. Das Ganze dauert aber länger als die gesamte ID3TAG-Manipulation (mit Lesen und Schreiben).

    Geschickt wäre hier die Nutzung einer RAMDisk. Ich hatte schon mal drüber gelesen im Forum oder im Handbuch. Hab es aber leider nicht wiedergefunden. Vielleicht hab ich auch nach dem falschen Begriff gesucht. Für eine Anregung in dieser Richtung wäre ich nun dankbar.

    Vielen Dank Denen, die sich meiner Sache angenommen haben. :D

  • mp3-Dateien mit "Zufall" neu sortieren

    • De Rand Ere
    • 7. Januar 2014 um 17:47

    @Cheater Dieter

    Ja, in meiner "Radikalkur" hab ich alle Daten gelöscht, die ich konnte und dann neu geschrieben. Den Erfolg hab ich schon beschrieben....


    Oscar

    Ich hab mir extra noch zwei neue Karten gekauft. Kein Erfolg ! Vorher hab ich es mit Formatieren der Karte versucht. Was soll ich sagen.... kein Erfolg.
    Am Zeitpunkt der Dateierstellung kann es auch nicht liegen, da ich zwei Datenfelder aufbaue. Das eine mit dem Dateinamen und das andere mit 1 bis X. Das Zweite lasse ich dann "Schütteln" (mehrfach) und dann ordne ich dem Eintrag im 1. Feld die Nummer aus dem 2. zu .... und ich merke grade, daß ich das erste Feld (Dateinamen) von A nach Z durcharbeite !!! Das muß ich noch mal durchdenken ... das ist ein Ansatz.... Mein Script kopiert übrigends vom Originalbestand über das TEMP (zur Dateimanipulation) direkt auf die Karte.

    erst mal Danke für die Anregung... werd das Pferd mal von hinten aufzäumen.... ^^

  • mp3-Dateien mit "Zufall" neu sortieren

    • De Rand Ere
    • 7. Januar 2014 um 16:52

    Hallo liebe AutoIt-Gemeinde,

    ich wende mich heute an euch, da ich mit meinem Latein am Ende bin und ich hoffe Ihr könnt mir helfen.

    Vo ca. 4 Wochen hab ich mir einen Vibrationslautsprecher von ADIN zugelegt. Das ist für den Preis ein ganz tolles Teil mit einem guten Funktionsumfang. Spielt Musik von einer Femdquelle, von Radio und von micrSD. Und hier fängt mein Problem an. Das Gerät kann Karten bis 4GB lesen. Das sind also so ca. 1000 bis 1200 Titel. Eine Funktion, die das Gerät nicht hat ist die zufällige Reihenfolge der Titel. Alles kein Problem - sortiere ich die Dateien ebend selber mit Autoit. Da der Datenbestand auf der Karte nur temporär ist kann ich den beliebig veränder. D.h. der Dateiname, wie der ID3TAG ist nicht relevat - Hauptsache gemischt. Im momentan Zustand kommt dann irgendwann 10x ACAC und dann 8x ABBA und irgendwann 9c die BeeGees am Stück. Das ist natürlich doof...

    Ich habe nun in den letzten 4 Wochen folgende Varianten in mein Script gehämmert:

    1. einfaches Umbenennen der Dateien in das Muster "001 bis 897". -> Erfolg = 0, alle Dateien werden im Muster A bis Z abgespielt !

    2. Mittels der hier verfügbaren ID3_v3.4.au3 den ID3TAG-V1 gändert und meine ZufallsDaten da eingetragen (vor den Namen des Interpreten eine Zufallszahl eingefügt). Der Dateiname blieb unverändert. Erfolg = 0, alle Dateien werden.....

    3. ID3TAG's in der Version 2.4 (letzte Version) ist mit der UDF noch nicht möglich, da der Programierer seine Arbeit eingestellt hat. Kann ich nachvollziehen ... das ist sehr aufwendig, da sich der ID3TAG ständig ändert. Also Zurückrudern und Dateien nach dem Muster "001 bis XXX" umbenenen und ID3TAG V1 mit neuen Daten füllen. Scriptechnisch ist das alles kein Problem... nur der Erfolg im Gerät =0, alle Dateien....

    4. Eine DOS-Software gesucht, die die Version 2 des ID3TAG schreiben kann. Script umgestellt; Dateinamen belassen, alle TAGs gelöscht und nur V2 mit TrackNr neu geschrieben -> Erfolg=0! Später dann Dateinanen und TAG geändert ... was glaubt Ihr -> Erfolg =0 !!!

    Die hier beschriebenen Varianten sind nur ein Bruchteil dessen, was ich versucht habe. Das Gerät ließ sich nicht von der Variante "ich spiele von A bis Z ab" abbringen.

    Ich habe alle Veränderunden an den Dateien mit WinAmp und dem MS Mediaplayer geprüft -> die Veränderungen an der Datei war wirksam.

    Nun meine eigentlich Frage!
    Weiß Einer von Euch wie in so einem micrSD-Modul die Sortierung der Dateien erfolgt bzw. auf welche Daten da zugegriffen wird? Am Endstand meiner Versuche hab ich alle Kopfdaten gelöscht und diese dann neu geschrieben und dennoch spielt das Gerät alle Titel von A nach Z ab. Ich bin am Ende .... ;(

    HILFE !!!

  • Inputfeld mit DropDown verändert - gib falsche Werte

    • De Rand Ere
    • 30. November 2011 um 18:32

    autoBert

    Ja, das funktioniert. Die Berechnung läuft nach meinen Vorstellungen. Diese Lösung erklärt aber das Verhalten der DropDown-Funktion nicht - sie bügelt nur aus. Soll heißen, es führt nicht zum Verständnis der Funktion selbst. Dennoch - danke für den Tip.

  • Inputfeld mit DropDown verändert - gib falsche Werte

    • De Rand Ere
    • 26. November 2011 um 18:53

    .. ich hoffte, der angegebene Code reicht zum Verständnis bzw. zur Problemerkennung.
    Hier aber nun die verschiedenen Auswertungen der Inputs....

    Hier die Änderungen in den Seitenverhältnissen (Ratio)....
    (der Cade ist noch nicht fertig, deshalb nur "4:3" - Ratio1 ausgeführt)

    [autoit]


    Func Verhaeltniss()
    $mMausXY=MouseGetPos()
    iF $mMausXY[0]>452 And $mMausXY[0]<635 And $mMausXY[1]>27 And $mMausXY[1]<100 Then
    $vRatio1=BitAND(GUICtrlRead($Ratio1), $GUI_CHECKED)
    $vRatio2=BitAND(GUICtrlRead($Ratio2), $GUI_CHECKED)
    $vRatio3=BitAND(GUICtrlRead($Ratio3), $GUI_CHECKED)
    Select
    Case $vRatio1=1
    GUICtrlSetStyle($vInputHoeheGrafik,$ES_READONLY)
    GUICtrlSetData($vInputHoeheGrafik,GUICtrlRead($vInputBeiteGrafik)*0.75))
    ;
    Case $vRatio2=1
    GUICtrlSetStyle($vInputHoeheGrafik,$ES_READONLY)
    ; Code folgt noch
    Case $vRatio3=1
    GUICtrlSetStyle($vInputHoeheGrafik,$GUI_SS_DEFAULT_INPUT)
    EndSelect
    EndIf
    if $mMausXY[0]>$DisplayBreite-110 And $mMausXY[0]<$DisplayBreite-110+100 And $mMausXY[1]>35 And $mMausXY[1]<140 Then
    OKButton ()
    EndIf
    EndFunc

    [/autoit]

    ... und hier nun das letztendliche Auslesen der "Inputs"...

    [autoit]


    Func EingabeAuslesen()
    $vXs=GUICtrlRead($vStartX) ;Startwert für X
    $vXe=GUICtrlRead($vEndX) ;Endwert für X
    $vYs=GUICtrlRead($vStartY) ;Startwert für Y
    $vYe=GUICtrlRead($vEndY) ;Endwert für Y
    $vmI=GUICtrlRead($vMaxIteration) ;MaxWert iteration
    $vmD=GUICtrlRead($vMaxDurchlauf) ;Anzahl der Dürchläufe
    $vZuum=GUICtrlRead($vZoom) ;Zoomfaktor auslesen
    $vBeiteGrafik=GUICtrlRead($vInputBeiteGrafik)
    $vHoeheGrafik=GUICtrlRead($vInputHoeheGrafik)
    $vPalette1=BitAND(GUICtrlRead($Palette1), $GUI_CHECKED)
    $vPalette2=BitAND(GUICtrlRead($Palette2), $GUI_CHECKED)
    $vPalette3=BitAND(GUICtrlRead($Palette3), $GUI_CHECKED)

    EndFunc

    [/autoit]
  • Inputfeld mit DropDown verändert - gib falsche Werte

    • De Rand Ere
    • 26. November 2011 um 17:56

    Hollo miteinander,

    ich hät da mal gern ein Problem !!!!

    Ich habe in eine GUI 2 Inputfelder mit DropDow definiert. Die Felder dienen zur Eingabe der Auflösung einer Grafik, die später erstellt werden soll - sie soll kleiner aber auch größer als des aktuelle Fesnter sein können. Als Startwert wird der jeweilige MaxWert des Fensters angezeigt z.B.1024x768. Diese Werte werden aus "@DesktopWidth" & "@DesktopHeight" ausgelesen und noch angepasst.
    Das zweite Radiofeld definiert die Seitenverhältnisse der Grafik. Bei Aktivierung einer Ratio außer "ohne" wird der Y-Bereich grau und dann automatisch nach X berechnet

    [autoit]


    ; Gruppe Grafikgröße in Pixel
    GUICtrlCreateGroup("Grafikgröße - waagerecht x senkrecht",440,4,200,62)
    $vInputBeiteGrafik=GUICtrlCreateInput($DisplayBreite, 470, 30, 60, 20)
    $vBeiteGrafikTMP=GUICtrlCreateUpdown($vInputBeiteGrafik)
    GUICtrlCreateLabel("X",537,31)
    $vInputHoeheGrafik=GUICtrlCreateInput($DisplayHoehe, 550, 30, 60, 20)
    $vHoeheGrafikTMP=GUICtrlCreateUpdown($vInputHoeheGrafik)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schliessen

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

    ; Gruppe Seitenverhältnis
    GUICtrlCreateGroup("Seitenverhältnis der Grafik",440,70,200,39)
    $Ratio1 = GUICtrlCreateRadio("4 : 3", 450, 85, 50, 20) ; = 0.75 oder 1.33333
    $Ratio2 = GUICtrlCreateRadio("16 : 9", 520, 85, 50, 20) ; = 0.5625 oder 1.777778
    $Ratio3 = GUICtrlCreateRadio("ohne", 590, 85, 45, 20)
    GUICtrlSetState($Ratio3, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schliessen

    [/autoit]


    Starte ich die Berechnung ohne Veränderung der Daten ist alles gut.

    Ändere ich aber über DropDown einen Wert, dann wird plötzlich aus 1024 -> 1.024. Es wird also 1 Komma 024 draus. Ich habe über "SetLimit" nachgelesen - glaube aber, daß das nicht weiter hilft. (Die Doku ist auch nicht sehr umfangreich...) Im Forum selbst habe ich zum Problem nichts gefunden.

    Wo ist nu mein geistiger Fehler ????
    In meiner GUI benutze ich noch ein Inputfeld mit DropDown mit dem Startwert 2 ... und das klickt ohne Probleme auf 3 ..4..5 usw.

    Ich lese aus "@DesktopWidth" den Wert 1024 aus, trage den in "GUICtrlCreateInput" ein und es sollte immer noch in Interger sein. Lese ich das ohne Änderung aus stimmt das auch. Ändere ich den Wert über DropDown, dann stimmt der Wert plötzlich nicht mehr - wie kommt das zustande ???

    Ich hoffe ihr könnt mir helfen.
    Vorab vielen Dank

  • Pixelgeneues Editieren eines Pixels im selbst geöffneten Fester/Bitmap

    • De Rand Ere
    • 10. November 2011 um 17:57

    Hallo zusammen,

    vor einigen Wochen fragte ich nach dem obrigem Thema.
    Nun hab ich nach vielen Versuchen ein erstes Ergebnis.....
    Ja, ich weiß die Apfelbrotmenge ist ein alter Hut und jeder hast schon gesehen. Zum Testen und Lernen aber eine prima Aufgabe.
    Wer es dann auch mal sehen möchte -> im Anhang (Ich hoffe das kommt auch an....)

    Nu stellt sich aber das nächste Problem:

    Zum "Pixeln" auf der GUI nutze ich momentan die "_GDIPlus_GraphicsFillRect" - Funktion. Nachteil bei der Anwendung der Funktion
    ist der Verlust der Darstellung (Bild) beim Verkleinern der GUI bzw. unter W2K verschwindet das Bild, wenn ich ein anderes Fesnter
    drüberlege (GUI im Hintergrund). Das ist natürlich nicht so prima - zum Speichern der Grafik sollte sie schon sichtbar sein.
    Bei Ubuntu hab ich von der Verwendung eines Buffers gelese (GUIPlus - Tutorial / Hier nochmals den Dank an Ubuntu - sehr hilfreich beim Einstieg).

    Nun meine Frage:
    Behebt die Verwendung eines Buffers über die Funktion "_GDIPlus_BitmapCreateFromGraphics" und "_GDIPlus_ImageGetGraphicsContext" den Verlust
    der Bildinformation und kann ich den Bildausschnitt später auch speichern ?

    Für Eure Hilfe schon mal vielen Dank

  • Pixelgeneues Editieren eines Pixels im selbst geöffneten Fester/Bitmap

    • De Rand Ere
    • 22. Oktober 2011 um 18:17

    Großen Dank für Eure Anregungen ... ich werd das dann mal nachlesen und versuchen zu testen.... :)

  • Pixelgeneues Editieren eines Pixels im selbst geöffneten Fester/Bitmap

    • De Rand Ere
    • 22. Oktober 2011 um 16:56

    Hallo liebe Gemeinde,

    das ist meine ertse Meldung in diesem Forum.
    Zu AutoIt kam ich ... wie meist immer ... eher zufällig über einen Kollegen meiner Zuft.
    Ich hab auch schon Stunden im Forum verbracht und unmengen an Einträgen gelesen. Damit
    konnte ich meine ersten Ideen erfolgreich umsetzten. Das waren aber eher dateiorientierte Anwendungen - nicht so schwehr... benötigten keine Fester und Grafiken. (Mehrere Zip - Datein in einem Hauptverzeichnis mit vielen Unterverzeichnisen in die jeweiligen entpacken mit Anlage des "ZipVerzeichnisses")

    Nu möchte ich mich aber einem neuem Projekt zuwenden und dazu benötige ich Grafikfunktionen.

    Zum Projekt:

    Auch wenn es schon x-tausenmal gemacht wurde möchte ich die Mandelbrotmenge berechnen und mit verschiedenen varianten experimentieren.
    Hat bestimmt schon jeder mal gehört bzw. selbst gemacht / programiert.

    Zur Darstellung möchte ich ein Fenster öffen, ein leeres BMP (oder ähliches) drauflegen und dann pixelgenau verändern.

    Im Standardhandbuch gibt es keine Funtion, mit der ich ein Pixel auf einem Bild verändern kann - hab ich zumindest nicht gefunden. Im Forum fand ich GDI+ ... aber keinen Hinweis, wo ich es runterladen kann.
    Vieleicht hab ich ja auch nur den blöden aber eindeutigen Button nicht gesehen.... Damit soll es gehen...

    Fragestellung:

    - Wo finde ich GDI+ ... und hilft mir das ?
    - Wie könnte man so etwas realisieren - die graphische Komponente ?

    Mir geht es nicht um den Code - den möchte ich schon selbst finden. Es geht mir eher um den Gedankensprung mit welcher Funktion das zu bewerkstelligen ist.

    Ich sag schon mal Danke...
    ...vieleicht fällt Euch was ein.... ?(

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™