Perfekt, Danke an alle!
Beiträge von turbobaby
-
-
Danke euch beiden!
Das funktioniert eigentlich von euch beiden ganz gut was aber bei beiden nicht geht und womit ich große Probleme habe ist:
Wenn da Wörter auf anderer Sprache wie russisch drin vorkommen, dann speichert es mir immer alle Buchstaben als ????????? Fragezeichen ab. Wenn ich es in arraydisplay ausgebe steht es noch richtig drin.
Wie kann ich denn das umgehen? Das ist für mich sehr wichtig.
-
Hallo Leute,
ich bräuchte etwas Hilfe, weil ich nach zisch tausenden experimenten nicht zum richtigen Ergebnis komme.
Ich habe eine Datei, die 42000 Tausend Zeilen hat.
Die Zeilen sind in folgendem Format
----------------------------------------------------------------------
Auto
Feld 1
{Schnelle Autos}
1 Audi
2 BMW
3 Mercedes{langsame Autos}
4 Fiat
5 LadaFeld 2
{Farben der Autos}
1 Grau
2 {nicht schön} Lilla
3 Rot
...Haus
Feld 1
{große Häuser}
1 Palast
2 Burg{kleine Häuser}
3 Bungalow
4 {für Tiere} Scheune
...
----------------------------------------------------------------------Und es geht immer so weiter.
Jetzt brauche ich folgendes Ergebnis:
1. Alle leere Zeilen löschen
2. Alle Zeilen die nur die Klammern {mit Wörter drin} löschen ausser die Klammern die in den Zeilen stehen mit vorangehender Zahl.
3. Nach dem Hauptwort z.B. Haus steht immer Feld 1 dann kommen die Einträge dann Feld 2 wieder die Einträge Feld 3 usw.: Das Wort Feld soll dann jeweils mit dem Hauptwort überschrieben werden und das Hauptwort dann anschließend gelöscht. Also würde dann Haus 1, die Einträge, Haus 2 usw. stehen.Ich habe versucht die Datei in eine Array einzulesen und mit "For $i = 0 To UBound($aArray) - 1" zu verarbeiten, das dauert aber EWIG.
Leere Zeilen habe ich so verucht, da werden mir aber auch andere gelöscht.
If $aArray[$i] = "" Then _ArrayDelete($aArray, $i)Für den Rest stehe ich sowieso auf dem Schlauch.
Kann mir da jemand weiter helfen?
Danke schon mal für die Mühe!
-
Ich weiß jetzt wo das Problem ist aber nicht wie ich es beseitigen kann.
Ich habe festgestellt sobald das Downloadfenster aufgeht bleibt der Code an der stelle stehen und läuft nicht mehr weiter.
Deshalb funktioniert auch kein WinWait oder ControlClick mehr.Wenn ich zwei verschieden Programme starte und mit dem einen das andere abfrage geht es aber aus einem Code geht's nicht.
Wie kann man das umgehen?
-
Danke schon mal für die Links - wird mir die mal genauer anschauen
Hab aber trotzdem noch viel mehr vor mit meinem Skript und würde deshalb gerne wissen wie ich mein oberes Skript zum laufen bekomme. Laut dem Beispiel von https://www.autoitscript.com/autoit3/docs/f…ControlSend.htm müsste das Fenster mit der CLASS:#32770 angesprochen werden. Wenn ich mein Fenster mit AU3Info (CTRL+F6) auslese, zeigt es mir auch an dass es CLASS:#32770 heißt. Aber warum kann ich es nicht wie im Beispiel ansprechen?
-
ich will ja nicht die Internetseite abspeichern sondern auf der Seite den Button Speichern anklicken und damit die Einstellungen der FritzBox sichern. Mit der Seite selber tu ich nichts.
-
Hallo Leute,
brauche wieder etwas Hilfe von euch.
Bin viel mit meinen FritzBoxen am experimentieren und wollte mir deswegen folgendes etwas automatisieren.Autoit soll mir auf der Seite: http://fritz.box/system/export.lua auf Sichern klicken und dann auf speichern Dateinamen vergeben und in einem bestimmten Ordner speichern.
Es soll eigentlich nichts zu sehen sein also alles im Hintergrund.
Ich habe das schon so angefangen und scheitere schon beim zweiten klick auf speichern
Wieso erkennt es mein WinWaitActive nicht?Kann mir da vielleicht jemand helfen?
Danke schon mal für eure Hilfe
[autoit]#include <IE.au3>
[/autoit][autoit][/autoit][autoit]
#include <GUIConstants.au3>$oIE = _IECreateEmbedded()
[/autoit][autoit][/autoit][autoit]
$Form1 = GUICreate("FritzBox Sicherungt", 1224, 700, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
$IE_1_GUI = GUICtrlCreateObj($oIE, 0, 0, @DesktopWidth, @DesktopHeight)
GUISetState(@SW_SHOW) ; Normalerweise ausgeblendet, hier nur zur vorschau_IENavigate($oIE, "http://fritz.box/system/export.lua")
[/autoit][autoit][/autoit][autoit]
$ButtonStart = _IEGetObjByName($oIE, 'ConfigExport')
_IEAction($ButtonStart, "click")Local $hWnd = WinWaitActive("[CLASS:#32770]") ; hier das klappt irgendwie nicht, warum?
[/autoit]
ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:2]") ; das klappt auch nicht obwohl das Speichern unter mit Notepad funktioniert, warum im Browser nicht? -
Ok. Die Passwort-Funktion wird nun hinzugefügt
Wie und wo stell ich das ein, hab es bis jetzt nicht herausgefunden?So - Resize hätte ich schon;
Da musst du noch ein bisschen dran arbeiten
bei mir wird unten einiges abgeschnitten, da fehlt eigentlich komplett alles was eigentlich über der Taskleiste war -
Jetzt kann man bei der neuen Version auf der rechten Seite kein EQ Reset mehr machen
und bei meiner großen Auflösung sieht alles nicht so schön aus, siehe Bild -
es wäre viel besser wenn ich eine Datei unten aus dem Ordner in den linken Player ziehe dass der Song dort sofort geladen wird und automatisch in die Playlist hinzugefügt wird.
Mann sollte aber auch so einstellen dass ein Lied nur einmal drin ist. Also wenn ein Lied schon drin ist, soll die Playlist zum Lied springen und meinetwegen zweimal aufblinken lassen oder so. -
sind aber noch einige Bugs drin1. Beim Doppelklick eines Songs in der Liste wählt sich der Song in beide Player gleichzeitig und unterbricht somit den Song
2. Man kann ein Titel nur in die rechte Liste mit der Maus ziehen, in die linke übernimmt er den Song nicht -
OK Pause und EQ funktionieren jetzt
hab aber noch ein BUG entdecktWenn ich Pause drücke wird der Sound kurz viel lauter bevor es anhält genauso verhält es sich wenn ich beim abspielen einen anderen Song mit doppeltklick auswähle. Das wirkt sehr störend vor allem wenn man leise Musik hören möchte.
-
wenn nur ein lied in der playlist ist, die playlist durch ist, dann denkt er, die playlist sei zuende.
Das geschieht auch wenn ich auf Pause drücke und wieder Play für weiter. Somit hat die Pause keine Funktion. -
lösch mal die settings.ini, da ist noch die von mir mit 1920x1080 px drin.
die farben können dann auch in deneinstellungen oben rechts geändert werden.
OK das sieht jetzt viel besser aus
Aber warum werden die Frequenzen nicht sofort umgesetzt sondern erst wen ich den Song neu lade?
Und die Playtaste funktioniert bei mir nicht. Wenn ich Pause drücke und dann wieder auf Play tut sich nichts. Muss ein Song wieder mit Doppelklick von neuem anfangen. -
Sieht dem ProgrammingDonkey seinem Player ähnlich allerdings würde ich sagen da stimmt was mit der GUI Darstellung nicht
siehe Bild
Unten ist da irgendwie was abgeschnittenDie Farbdarstellung gefällt mir persönlich nicht sieht alles bisschen zu grell aus mit dem hellen blau - ist aber Geschmackssache
-
Vielleicht kriegst du noch schnellere Dateianalyse?
Das dauert ja Ewig wenn man 100 Dateien ins Fenster reinzieht bis der fertig ist. Geht doch bestimmt schneller an die Information der Dateien ran zu kommen? Windows Explorer zeigt diese schließlich auch sofort und nicht erst nach 20 bis 30 Sekunden.
Ansonsten gefällt mir das mit den Kontrollkästchen jetzt besser, allerdings was ich besser finden würde ist, wenn ich ein EQ eingestellt habe, dass ich dass eventuell mit den Tasten Plus und Minus oder Pfeiltasten rechts links noch verändern kann wenn ich grade drauf stehe. Denn leider kann man da bis jetzt nur hinzufügen und löschen aber nicht ändern. Und vielleicht kannst du da auch wenn die Zahl im Plus ist ein Pluszeichen davor setzen, das macht die Optik glaub ich besser?Zu Fullscreen: Ich persönlich finde diese Option sehr Geil aus dem Grund, weil z.B. wenn man eine Party feiert und man stellt sein Laptop mit Musik hin, dann können die Leute da die Lieder anklicken ohne die anderen Programme zu sehen und zu Bedienen. Ich würde mir dafür aber noch ein paar Funktionen wünschen.
1. Irgendwie einstellen können, dass man den Fullscreen nur mit dem vergebenen Passwort verlassen kann.
2. Eine Option bieten um im Normalmodus arbeiten zu können also nicht im Fullscreen.
3. Das Programm beenden dann wenn 1 Aktiv auch nur mit Passwort.Dann würde ich dich bitten die Auswahl der Soundkarten nicht rauszuholen oder diese wenigstens dann in den Menüs auswählen zu können. Denn ich habe mehrere Soundkarten. Ich würde mir sogar wünschen das man damit auch streamen auf die Mediastationen kann. Ich habe zu Hause SONOS System und kann mit Win-Explorer z.B. direkt Musik drauf streamen. Das wäre richtig Geil wenn ich dafür so einen MediaPlayer hätte mit dem ich die Songs auch speichern und somit z.B. schon vorbereitete Playlisten laden und abspielen könnte. Wenn das möglich wäre...
Du machst hier eine gute Arbeit, mach weiter so und gib nicht auf! Danke dafür!
-
4: Dann wird der Ordner, der in der InputBox dort steht in der ListView unten angezeigt
Bei mir werden die Dateien unten automatisch angezeigt wenn ich oben einen Ordner anklicke. Vielleicht sollte die Taste Reload oder so heißen falls man neue Dateien in seinem Ordner hat.
5: Dort werden die kBits angezeigt, die unter den Dateiinfos (Rechtsklick->Eigenschaften->Details) eingetragen ist. Je höher die kBits, desto höher die Qualität. (kBits<>BPM)
Ach so ich Dummerchen, ich habe an die Geschwindigkeit gedacht...
Schreib gerne weiter. Je mehr Infos, desto besser wirds.
Na dann z.B. noch:
7. Du hast oben eine große leere Leiste. Mach da doch wenigstens eine Uhr rein. Da du das Programm als Fullscreen benutzt ist es nicht schlecht bei einer Party z.B. zu wissen wie viel Uhr wir grade haben.
8. Wenn man links unten in der Leiste eine Datei doppelt anklickt, dann soll diese sofort in die Playliste ganz unten hinzugefügt werden. -
Dann schreibe deine Funktionen in die WM_Notify der UDF
das habe ich mir auch schon überlegt, nur ich verstehe die Funktion der Doppeltklick Taste in der UDF nicht. Die ist im Case nicht so drin $NM_DBLCLK wie ich die kenne. Ich habe es ja schon versucht und daran gescheitert. Wie kann ich die jetzige linke Doppelklick Taste zum Editieren auf $NM_RDBLCLK bzw. auf Doppelklick der rechten Maustaste umlegen? Ist das in der UDF möglich?
-
Hi ein schöner Player, gefällt mir schon mal ganz gut.
Kann man wirklich noch viel damit machen.1. Für EQ schlage ich folgendes vor:
Ich habe ein Mischpult mit 6 Regler pro Kanal für EQ. Mit dem obersten kann man die Höhen und mit dem untersten die Bässe anheben oder absenken. Welche Frequenzen da genau gedreht werden weiß ich nicht denke aber da gibt es irgendwo eine Standard Einstellung. Die anderen Potis sind in zwei Gruppen aufgeteilt. Jeweils eins für Frequenz und das andere für die eingestellte Frequenz anzuheben oder abzusenken. Vermute auch das die Frequenzen dann in einem Bogen (Welle) verstellt werden und nicht nur die eine Frequenz selber. Meiner Meinung reicht das vollkommen aus für einen EQ im Player da man meistens eh schon abgemischte Musik abspielt. Einen 32 Spurigen Frequenz EQ oder so benötigt man eher für Liveabstimmungen.2. Kannst du die Symbole unter der Playtaste was größer machen? Leider erkennt man die sehr schlecht.
3. Das Ausklappmenü für die soundkarte auszuwählen hat wohl ein Bug. Wenn ich draufklicke öffnet sich unten nur ca. 1mm was und man kann nicht sehen was ich auswählen soll. Wenn ich aber mit der Taste nach unten gehe und Enter drücke, dann wählt sich meine Soundkarte aus.
4. Habe ich noch nicht verstanden wofür die OPEN Taste oben da ist. Hat es eine Funktion?
5. kBits funktioniert nicht richtig. Der zeigt mir fast überall 256 bis 320 kBits auch bei langsamer Musik.
6. Es wäre schön wenn man noch ein Feld hätte wo man nach Namen suchen könnte.
Na ja ich könnte jetzt noch jede Menge so weiter schreiben sollte ja nur so als Gedanke dienen
-
Zu2: Das Problem liegt darim, das _ArraySort Zahlen nicht als solche behandelt es wird alleine nach dem Alphabet sortiert.
Um z.B. das Index zu sortieren ist das ganze ganz einfach umzusetzen:Das Problem ist jetzt, dass er mir das zwar richtig sortiert, aber der sortiert mir die Spalte mit den Zahlen nur einmal und dann tut sich nichts mehr bis ich eine andere Spalte anklicke.
Zu 4 scha dir mal diese UDF an: autoitscript.com/forum/topic/1…ion-9-feb-14/#entry867799
Leider ist das Script für mich zu umfangreich. Wenn ich das in mein Script include, dann funktionieren alle vorgegebenen Funktionen der UDF aber das Problem ist dass dann meine Funktionen automatisch deaktiviert werden. Meine WM_NOTIFY Funktion ist somit dann deaktiviert.
Das löschen funktioniert dann nicht sowie Doppeltklick der Maus wandelt sich in Editieren der angeklickten Kästchen.
Im Grunde wären da zwar meine anderen Probleme gelöst, weil die UDF z.B. schon das richtige Sortieren mitbringt. Oder das verschieben genau so wie ich mir das vorgestellt habe.Und zu 5: Gib mir mal das Bild zum testen. Habe keine Bilder auf der Arbeitsmaschine
Btw, sollte ein Hintergrundbild nur bei einem ListvIew funtionieren, das du per UDF erstellt hast (_GUICtrlListView_Create).
Bei einem Standard-ListView wird die Funktion _GUICtrlListView_SetBkImage sofort wieder verlassen.
Verstehen muß ich diesen Vorgang nicht, weil die Funtionalität vorhanden ist, auch ein Hintergrundbild in ein Standardlistview einzufügen.
Ich denke du rufst die Funtion mit dem Handle auf, wechen du per GUICtrlGetHandle bekommen hast.Mit den Dateien hab ich es zwar hingekriegt und mit dem Hintergrundbild was aber immer noch nicht iO ist, ist das Scrollen oder das Löschen. Wo genau mein Problem ist siehe Bilder. Wie schon gesagt, wenn ich unten alles markiere und dann aber ganz nach oben wieder scrolle und auf Delete Taste klicke oder auch so beim Löschen, dann passiert das wie auf den Bildern zu sehen.
Ich hatte dazu auch mal eine Funktion erstellt.
_GuiCtrlListView_MoveItemMir Persönlich gefällt es mehr wenn ich mit der Maus die Positionen tauschen kann anstatt da noch extra Buttons rein zu machen. Das macht die von Raupi verlinkte UDF wirklich sehr gut.
Ich würde gerne nur wissen wie ich nur diese Funktion und das Editieren der einzelnen Felder aus der UDF in meinem Script verwenden kann ohne dass mir die anderen Funktionen flöten gehen?hier nochmal mein aktuelleres Script
Spoiler anzeigen
[autoit]#Region - Timestamp
[/autoit] [autoit][/autoit] [autoit]
; 28.02.2015 17:45:10
#EndRegion#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ScreenCapture.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ColorConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <SendMessage.au3>
#include <Sound.au3>#include ".\GUIListViewEx\GUIListViewEx.au3"
[/autoit] [autoit][/autoit] [autoit]Global $aDropFiles[1]
[/autoit] [autoit][/autoit] [autoit]
Global Const $VK_DELETE = 0x2E
Global Const $AllesMarkieren = 0x41
Local $hDLL = DllOpen("user32.dll")$Form1 = GUICreate("Liste Sortieren", 333, 460, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_SYSMENU, $WS_POPUP, $WS_GROUP, $WS_CLIPSIBLINGS), $WS_EX_ACCEPTFILES)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Form1, $GUI_DROPACCEPTED)
GUISetOnEvent($GUI_EVENT_DROPPED, "_FilesDropped")
$Pic1 = GUICtrlCreatePic("C:\Windows\Web\Screen\img103.jpg", 0, 0, 332, 436, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
GUICtrlSetState($Pic1, $GUI_DISABLE)$ExitButton = GUICtrlCreateButton("Exit", 266, 8, 60, 25)
[/autoit] [autoit][/autoit] [autoit]
$DateiLabel = GUICtrlCreateLabel("Keine Datei ausgewählt", 8, 40, 316, 40)
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)Local $ListView = GUICtrlCreateListView("Nr|Titel|Status|Datei", 8, 85, 316, 343, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
[/autoit] [autoit][/autoit] [autoit]
$ListView = GUICtrlGetHandle($ListView)
GUICtrlSetBkColor($ListView, 0x1E1E1E)
GUICtrlSetColor($ListView, 0xffffff)
GUICtrlSetState($ListView, BitOR($GUI_DROPACCEPTED, $GUI_FOCUS))
_GUICtrlListView_SetBkImage($ListView, "C:\Windows\Web\Screen\img103.jpg",1)
_GUICtrlListView_SetColumnWidth($ListView, 0, 35)
_GUICtrlListView_SetColumnWidth($ListView, 1, 200)
_GUICtrlListView_SetColumnWidth($ListView, 3, 0)GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]; Register for sorting, dragging and editing
[/autoit] [autoit][/autoit] [autoit]
;~ _GUIListViewEx_MsgRegister(True, True, True); Set the ListView as active
[/autoit] [autoit][/autoit] [autoit]
;~ _GUIListViewEx_SetActive(1)For $i = 0 To 102
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_AddItem($ListView, $i)
_GUICtrlListView_AddSubItem($ListView, $i, $i & " Spalte 2 Irgendetwas", 1, 1)
_GUICtrlListView_AddSubItem($ListView, $i, $i & " Spalte 3", 2, 2)
_GUICtrlListView_AddSubItem($ListView, $i, $i & " Spalte 4", 3, 3)
Next$ListView_Index = _GUIListViewEx_Init($ListView, _GUICtrlListView_GetItemCount($ListView), 0, 0, True, 2 + 4 + 8 + 16 + 32, "1")
[/autoit] [autoit][/autoit] [autoit]While Sleep(10)
[/autoit] [autoit][/autoit] [autoit]
$aRet = _GUIListViewEx_EditOnClick(0)
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $ExitButton
Exit
Case $GUI_EVENT_DROPPED
If @GUI_DropId = $ListView Then
_FilesDropped()
EndIf
EndSwitch
If _IsPressed("11", $hDLL) And _IsPressed("50", $hDLL) Then _ScreenCapture_CaptureWnd("Captured-"&@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC&".jpg", $Form1)
WEndFunc _ListView_Sort($cIndex = 0)
[/autoit] [autoit][/autoit] [autoit]
Local $iColumnsCount, $iDimension, $iItemsCount, $aItemsTemp, $aItemsText, $iCurPos, $iImgSummand, $i, $j$iColumnsCount = _GUICtrlListView_GetColumnCount($ListView)
[/autoit] [autoit][/autoit] [autoit]$iDimension = $iColumnsCount * 2
[/autoit] [autoit][/autoit] [autoit]$iItemsCount = _GUICtrlListView_GetItemCount($ListView)
[/autoit] [autoit][/autoit] [autoit]If $iItemsCount = 0 Then Return ConsoleWrite('Keine Dateien in Liste vorhanden' & @CR)
[/autoit] [autoit][/autoit] [autoit]Local $aItemsTemp[1][$iDimension]
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To $iItemsCount - 1
[/autoit] [autoit][/autoit] [autoit]
$aItemsTemp[0][0] += 1
ReDim $aItemsTemp[$aItemsTemp[0][0] + 1][$iDimension]$aItemsText = _GUICtrlListView_GetItemTextArray($ListView, $i)
[/autoit] [autoit][/autoit] [autoit]
$iImgSummand = $aItemsText[0] - 1For $j = 1 To $aItemsText[0]
[/autoit] [autoit][/autoit] [autoit]
If (StringIsFloat($aItemsText[$j]) Or StringIsInt($aItemsText[$j])) Then
$aItemsText[$j] = Number($aItemsText[$j])
EndIf
$aItemsTemp[$aItemsTemp[0][0]][$j - 1] = $aItemsText[$j]
$aItemsTemp[$aItemsTemp[0][0]][$j + $iImgSummand] = _GUICtrlListView_GetItemImage($ListView, $i, $j - 1)
Next
Next$iCurPos = $aItemsTemp[1][$cIndex]
[/autoit] [autoit][/autoit] [autoit]
_ArraySort($aItemsTemp, 0, 1, 0, $cIndex)
If StringInStr($iCurPos, $aItemsTemp[1][$cIndex]) Then _ArraySort($aItemsTemp, 1, 1, 0, $cIndex)ConsoleWrite($iCurPos & ' ' & $aItemsTemp[1][$cIndex] & ' ' & $aItemsTemp & @CR)
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $aItemsTemp[0][0]
[/autoit] [autoit][/autoit] [autoit]
For $j = 1 To $iColumnsCount
_GUICtrlListView_SetItemText($ListView, $i - 1, $aItemsTemp[$i][$j - 1], $j - 1)
_GUICtrlListView_SetItemImage($ListView, $i - 1, $aItemsTemp[$i][$j + $iImgSummand], $j - 1)
Next
Next
EndFunc ;==>_ListView_SortFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
$hWndListView = $ListView
If Not IsHWnd($ListView) Then $hWndListView = GUICtrlGetHandle($ListView)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $sDrive, $sDir, $sFilename, $sExtension
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_GUICtrlListView_SetItemSelected($ListView, DllStructGetData($tInfo, "Index"), True, True)
$lol = _GUICtrlListView_GetItemText($ListView, DllStructGetData($tInfo, "Index"), 3)
Local $aPathSplit = _PathSplit($lol, $sDrive, $sDir, $sFilename, $sExtension)
If IsArray($aPathSplit) Then
If FileExists($aPathSplit[0]) Then
Local $hallo
$hallo = MsgBox(4100, 'Datei', 'Datei: ' & $aPathSplit[0] & @CR & @CR & _
'Laufwerk: ' & $aPathSplit[1] & @CR & @CR & _
'Ordner: ' & $aPathSplit[2] & @CR & @CR & _
'Dateiname: ' & $aPathSplit[3] & @CR & @CR & _
'Dateiendung: ' & $aPathSplit[4] & @CR & @CR & @CR & @CR & _
'Soll die Datei ausgewählt werden?')
If $hallo = 6 Then GUICtrlSetData($DateiLabel, $aPathSplit[0])
Else
GUICtrlSetData($DateiLabel, _GUICtrlListView_GetItemText($ListView, DllStructGetData($tInfo, "Index"), 1))
EndIf
EndIf
Case $LVN_COLUMNCLICK
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $ColumnIndex = DllStructGetData($tInfo, "SubItem")
_ListView_Sort($ColumnIndex)
Case $LVN_KEYDOWN
$taGLVKEYDOWN = DllStructCreate("int;int;int;int;uint", $ilParam)
$code = Hex(DllStructGetData($taGLVKEYDOWN, 4), 2)
Select
Case $code = Hex($VK_DELETE, 2)
_GUICtrlListView_BeginUpdate($ListView)
$id = _GUICtrlListView_GetItemCount($ListView)
$Selected = StringSplit(_GUICtrlListView_GetSelectedIndices($ListView), "|")
If $Selected[0] = $id Then
_GUICtrlListView_DeleteAllItems($ListView)
Else
For $i = $Selected[0] To 1 Step -1 ; Loop through the array returned by StringSplit to display the individual values.
_GUICtrlListView_DeleteItem($ListView, $Selected[$i])
Next
EndIf
$id = _GUICtrlListView_GetItemCount($ListView)
For $i = 0 To $id
_GUICtrlListView_SetItem($ListView, $i + 1, $i, 0)
Next
_GUICtrlListView_EndUpdate($ListView)
Case $code = Hex($AllesMarkieren, 2)
Local $hDLL = DllOpen("user32.dll")
If _IsPressed("11", $hDLL) Then
ControlListView("", "", $ListView, "SelectAll")
EndIf
EndSelect
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY#Region ;Drag and Drop und Doppelklick
[/autoit] [autoit][/autoit] [autoit]
Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
Local $nSize, $pFileName
Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
For $i = 0 To $nAmt[0] - 1
$nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
$nSize = $nSize[0] + 1
$pFileName = DllStructCreate("char[" & $nSize & "]")
DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
ReDim $aDropFiles[$i + 1]
$aDropFiles[$i] = DllStructGetData($pFileName, 1)
$pFileName = 0
Next
EndFunc ;==>WM_DROPFILES_FUNCFunc _FilesDropped()
[/autoit] [autoit][/autoit] [autoit][/autoit]
Local $szDrive, $szDir, $szFName, $szExt, $split
_GUICtrlListView_BeginUpdate($ListView)
$id = _GUICtrlListView_GetItemCount($ListView)
For $i = 0 To UBound($aDropFiles) - 1
$id = $id + 1
$split = _PathSplit($aDropFiles[$i], $szDrive, $szDir, $szFName, $szExt)
$szExt = StringUpper($szExt)
GUICtrlCreateListViewItem($id & "|" & $split[3] & $split[4] & "|" & "Bereit" & "|" & $split[0], $ListView)
Next
_GUICtrlListView_SetColumnWidth($ListView, 3, 0)
_GUICtrlListView_EndUpdate($ListView)
EndFunc ;==>_FilesDropped