@Inferior: In meinem Beispiel ist in $iSelect der Index zu dem Listview-Item enthalten, dieser entspricht auch dem Index des Array $werte. Das heißt, wenn Dein zweites Array "$b" analog zu dem Ersten aufgebaut ist, dann kannst Du den Wert einfach mit $b[$iSelect] ansprechen, ganz ohne For...Next-Schleife und If-Anweisung.
Beiträge von Oscar
-
-
Kannst Du mir sagen, bei welchen MP3s das passiert? VBR-codierte? Was steht bei Bitrate? Und wie falsch sind die Werte (tatsächlich / falsch)?
Wenn Du das crossfading nicht haben willst, dann entferne den Haken in der Config.

-
Das vorhandene _TicksToTime war mir immer zu "unhandlich". Man musste drei Variablen übergeben und konnte das Ergebnis nicht gleich in anderen Funktionen weiterverwenden.
Deshalb habe ich diese Funktion geschrieben, die einen String zurückgibt, dessen Format man festlegen kann.Lange Rede....hier ist die Funktion:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, 'Beispiel 1', _TicksToTimeFormat(3345757822, '%ww Wochen, %dd Tage, %hh Stunden, %mm Minuten, %ss Sekunden und %ms Millisekunden'))
MsgBox(0, 'Beispiel 2', 'Ausgabe als "%hh:%mm:%ss":' & @CR & @CR & _TicksToTimeFormat(21227884, '%hh:%mm:%ss'))
MsgBox(0, 'Beispiel 3', 'Ausgabe als "%mm %ss":' & @CR & @CR & _TicksToTimeFormat(67843, '%mm %ss'))
MsgBox(0, 'Beispiel 4', 'Ausgabe als "%mm:%ss.%ms":' & @CR & @CR & _TicksToTimeFormat(597543, '%mm:%ss.%ms'))
MsgBox(0, 'Beispiel 5', 'Ausgabe als "%mm:%ss.%ms":' & @CR & @CR & _TicksToTimeFormat(2, '%mm:%ss.%ms'));===============================================================================
[/autoit]
; Function Name: _TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss')
; Description:: Diese Funktion wandelt Millisekunden in ein anzugebenes Zeitformat um
; Parameter(s): $iTicks = Zeit in Millisekunden
; $sFormat:
; %ww für Wochen
; %dd für Tage
; %hh für Stunden
; %mm für Minuten
; %ss für Sekunden
; %ms für Millisekunden
; sonstige Zeichen, die dazwischen stehen, werden übernommen
; Requirement(s): -
; Return Value(s): Zeit im ausgewählten Format (String)
; Author(s): Oscar (http://www.autoit.de)
;===============================================================================
Func _TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss')
Local $aTime[6], $sOut, $aTimeFormat[6] = ['ww', 'dd', 'hh', 'mm', 'ss', 'ms'], $aFormat
$aTime[4] = Int($iTicks / 1000)
$aTime[5] = $iTicks - $aTime[4] * 1000
$aTime[0] = Int($aTime[4] / 604800)
$aTime[4] = Mod($aTime[4], 604800)
$aTime[1] = Int($aTime[4] / 86400)
$aTime[4] = Mod($aTime[4], 86400)
$aTime[2] = Int($aTime[4] / 3600)
$aTime[4] = Mod($aTime[4], 3600)
$aTime[3] = Int($aTime[4] / 60)
$aTime[4] = Mod($aTime[4], 60)
$aFormat = StringRegExp($sFormat, '%([^%]+)', 3)
If Not IsArray($aFormat) Then Return SetError(1, 0, $iTicks)
For $i = 0 To UBound($aFormat) - 1
For $j = 0 To UBound($aTimeFormat) - 1
If StringLeft($aFormat[$i], 2) = $aTimeFormat[$j] Then $sOut &= StringFormat('%0' & 2 + ($j = 5) & 'i', $aTime[$j]) & StringMid($aFormat[$i], 3)
Next
Next
Return $sOut
EndFunc ;==>_TicksToTimeFormatEdit: $aFormat nicht lokal deklariert. Behoben!
Edit2: Millisekunden wurden nicht dreistellig angezeigt. Behoben!
Edit3: Tage und Wochen hinzugefügt (siehe Beispiele)
Nichts weltbewegendes, aber ich finde die Funktion ganz praktisch.
Vielleicht kann sie ja noch jemand gebrauchen... -
-
Das Beispiel funktioniert bei mir einwandfrei. Was hast Du für eine Version von AutoIt?
Aber abgesehen davon, geht es auch so:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Global $werte[5]
[/autoit] [autoit][/autoit] [autoit]
$werte[0] = "a"
$werte[1] = "b"
$werte[2] = "c"
$werte[3] = "d"
$werte[4] = "e"$hGui = GUICreate("test", 200, 500)
[/autoit] [autoit][/autoit] [autoit]
$hListView = GUICtrlCreateListView("Werte:", 10, 20, 180, 460)For $y = 0 To UBound($werte) - 1
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateListViewItem($werte[$y], $hListView)
NextGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_PRIMARYDOWN
$iSelect = ControlListView($hGui, '', $hListView, 'GetSelected')
$iText = ControlListView($hGui, '', $hListView, 'GetText', $iSelect, 0)
ToolTip($iText)
EndSwitch
WEnd -
So:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <StructureConstants.au3>
#include <WindowsConstants.au3>Global $werte[5]
[/autoit] [autoit][/autoit] [autoit]
$werte[0] = "a"
$werte[1] = "b"
$werte[2] = "c"
$werte[3] = "d"
$werte[4] = "e"$msg = GUICreate("test", 200, 500)
[/autoit] [autoit][/autoit] [autoit]
$hListView = GUICtrlCreateListView("Werte:", 10, 20, 180, 460)For $y = 0 To UBound($werte) - 1
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateListViewItem($werte[$y], $hListView)
NextGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo, $iItem, $iValue
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
$iItem = DllStructGetData($tInfo, 'SubItem')
$iValue = _GUICtrlListView_GetItemTextString($hWndListView, $iItem)
ToolTip('Du hast "' & $iValue & '" angeklickt.')
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc -
Entweder hat _SoundPos den Wert von _SoundLength erreicht oder Du fragst _SoundStatus ab.

-
@progandy: Stimmt! Das könnte sein. Kann man nicht einfach den Icon-Cache vergrößern?
opaed: Problematisch sind nicht nur USB-Sticks, denke ich. Vermutlich reicht auch ein präpariertes ZIP-/RAR-Archiv mit LNK-File und Trojaner. Sobald der Explorer das Icon der Verknüpfung anzeigen will, schlägt der Trojaner zu.

-
Das war unterschiedlich. Auf meinem Hauptrechner (Win7, 64 Bit) war das bei einer Verknüpfung zu einem Spiel, dass dort das Icon weiterhin angezeigt wurde.
Auf meinem Server-Rechner (mittlerweile auch Win7, 64 Bit) wurden die Icons vom AdobeReader, von Firefox und AviraAntivir weiterhin angezeigt. Jeweils alles Verknüpfungen zu den Programmen. -
Es ist ja nicht nur die Schnellstartleiste. Die Icons auf dem Dekstop (habe einige in verschiedene Ordner abgelegt) sind zum überwiegenden Teil auch betroffen.
Wobei ich nicht verstehe, warum nicht alle Icons von Verknüpfungen verschwunden sind!?Microsoft soll endlich einen Patch für den IconHandler rausbringen...

-
Oh, Mist! Habe auch schon alles versucht, aber die Icons sind (nach dem Neustart) nicht mehr zu sehen.

Das ist irgendwie sehr unbefriedigend. Wenn ich das richtig verstanden habe, dann verbreitet sich der Virus per USB-Stick bzw. durch Weitergabe eben einer LNK-Datei, oder?
Mit anderen Worten: Man muss "nur" verhindern, dass eine solche LNK-Datei mit Windows in Berührung kommt?Dann werde ich wohl die Änderung an der Reg wieder rückgängig machen. Ohne Icons ist meine Schnellstartleiste ein Witz.

-
Es gibt jetzt (seit gestern) einen Exploit.
Exploit demonstriert kritische Windows-LNK-LückeJetzt ist es "höchste Eisenbahn" für den Workaround. Nehmt die Änderung an der Reg vor (Backup des Keys nicht vergessen)!
-
[closed]
-
Ja, die letzte Antwort liegt mehr als 535 Tage zurück.
Gestern hat es nun das Netzteil meines Servers erwischt. Das will nicht mehr! Elektro-Schrott!
Meine Empfehlung von oben für dieses Netzteil muss ich wohl revidieren. Eineinhalb Jahre sind nicht gerade eine berauschende Lebensdauer.
Auch wenn das im Dauerbetrieb war. Die meiste Zeit davon lief es nur im Teillastbereich. Voll ausgelastet wurde es nie.
Ein positiver Aspekt dabei war, dass der Lüfter während der ganzen Zeit nahezu unhörbar (sehr leise) war. -
Wobei man nicht unbedingt FireFox automatisieren müsste. Mit InetGet kann man die Dateien ganz ohne Browser downloaden.
Wenn die Excel-Tabelle auch noch als Textdatei vorhanden ist, dann bräuchte man auch kein Office, sondern könnte die Daten mittels FileRead auslesen. -
Oh, sh*t! Das ist ja mal wieder ganz übel. :wacko:
Lest euch das hier mal durch. Den Workaround sollte man wohl dringend ausführen. -
Schau Dir mal _Date_Time_GetTickCount() an.
-
Die Random-Funktion arbeitet etwas anders. Wenn man den Button anklickt, wird die Playlist zufällig neu sortiert und dann von oben nach unten abgespielt. Deshalb braucht man dafür kein anderes Icon.
Für "Repeat" bzw. "No Repeat" gibt es doch bereits zwei unterschiedliche Icons. Ich weiß jetzt nicht, ob man die zusätzlich auch noch in anderen Farben machen sollte!?
Fernbedienung-Unterstützung hört sich ja ganz interessant an. Wobei: Kommt das nicht auf die verwendete Fernbedienung an? Irgendwo habe ich noch eine Funk-Fernbedieung rumliegen....muss die mal suchen...
Aber dazu muss doch eigentlich nichts am Starplayer verändert werden, oder? -
[Beitrag wiederhergestellt]
-
- Die Hintergrundfarbe war eigentlich ein helles Orange und sollte zum Stern passen, aber ich habe das jetzt mit Hintergrundbild gemacht. Sieht besser aus.
- Was hast Du für einen kleinen Desktop, dass die Fenster außerhalb geöffnet werden?
Das möchte ich auch nicht ändern, weil ich eben nicht drei einzelne Fenster haben will. Die sollen schon zusammenhängen.
- Der Ort für die Inidatei ist jetzt wählbar (AppDataDir <-> ScriptDir).
- Playlist wird jetzt auch durchnummeriert. Ist aber nicht wählbar, sondern fest.
- Die aktuell zusammengestellte Playlist kannst Du mit dem "Save"-Button abspeichern.
Danke für die guten Vorschläge!

Neue Version gibt's in Post #1.