vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Mp3 durch Winamp wiedergeben? 
Autor: Karl
Datum: 07.05.02 20:54

Erst mal vorweg: Mein Programm soll mir das Abspielen meiner "zahlreichen" mp3 erleichtern. Dazu lasse ich in einem bestimmten Pfad (Text1) nach einem bestimmten Format "mp3" (Text2) durchsuchen. Alle Dateien (Label6 gibt derren Anzahl wieder), die dieses Format in dem Verzeichnis besitzten werden in einer List1.box ausgegeben. Klicke ich nun eine Datei in List1 an, wird der makierte Listindex auf dem Label1 wiedergegeben. Dann entspricht label1 meinem SParam. Hier der Code:

Option Explicit
Private Declare Function FindFirstFile Lib "kernel32" _
Alias "FindFirstFileA" (ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindNextFile Lib "kernel32" _
Alias "FindNextFileA" (ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal _
hFindFile As Long) As Long

Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd As Long, ByVal wMsg _
As Long, ByVal wParam As Long, ByVal lParam As _
String) As Long

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Const MAX_PATH = 259

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private Const LB_FINDSTRING = &H18F
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_COMPRESSED = &H800
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Const FILE_ATTRIBUTE_HIDDEN = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_READONLY = &H1
Const FILE_ATTRIBUTE_SYSTEM = &H4
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const LB_GETCOUNT = &H18B
Const LB_GETTEXT = &H189
Const LB_GETTEXTLEN = &H18A
Const LB_GETCURSEL = &H188


Private Sub Command2_Click()
Dim lCnt&, X&, L&, Buffer$, Item$, LBidx&, Pfad$, sExe$, SParam$
LBidx = SendMessage(List1.hWnd, LB_GETCURSEL, 0, 0)
If LBidx <> -1 Then
Label1.Caption = GetListBoxEntry(List1.hWnd, LBidx)
Else
Label1.Caption = ""
End If
Pfad = Label1.Caption
sExe = "crogrammewinampwinamp.exe"
SParam = Chr$(34) & Pfad & Chr$(34)
Shell sExe & " " & SParam

End Sub

Private Sub Form_Load()
Text1.Text = "D:MusikParty" ' Text1 ist der zu dursuchende Pfad
Text2.Text = "*.mp3" 'Text2 läßt nach einem bestimmten Format suchen
Combo1.AddItem "HipHop"

End Sub

Private Sub Command1_Click()
Dim Files() As String, X&
Dim DatCnt&, DirCnt&

ReDim Files(0 To 0)
Call GetAllFiles(Text1.Text, Text2.Text, Files)

List1.Clear
For X = 0 To UBound(Files) - 1
List1.AddItem Files(X)
If Left$(Files(X), 2) = ">>" Then
DirCnt = DirCnt + 1
Label5.Caption = DirCnt
Label5.Refresh
Else
DatCnt = DatCnt + 1
Label6.Caption = DatCnt
Label6.Refresh
End If
Next X
End Sub

Private Sub GetAllFiles(ByVal Root$, ByVal Patt$, ByRef Field$())
Dim File$, hFile&, FD As WIN32_FIND_DATA

If Right(Root, 1) <> "\" Then Root = Root & "\"
hFile = FindFirstFile(Root & Patt, FD)
If hFile = 0 Then Exit Sub
Do
File = Left(FD.cFileName, InStr(FD.cFileName, Chr(0)) - 1)
If (FD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) _
= FILE_ATTRIBUTE_DIRECTORY Then
If (File <> ".") And (File <> "..") Then
'Verz.: ">>" kann entfernt werden,da nur zur Visualisierung
Field(UBound(Field)) = ">>" & Root & File
ReDim Preserve Field(0 To UBound(Field) + 1)
GetAllFiles Root & File, Patt, Field
End If
Else
'Datei: " " kann entfernt werden,da nur zur Visualisierung
Field(UBound(Field)) = " " & Root & File
ReDim Preserve Field(0 To UBound(Field) + 1)
End If
Loop While FindNextFile(hFile, FD)
Call FindClose(hFile)
End Sub

Private Function GetListBoxEntry(hWnd&, LbItem&) As String
Dim L&, Buffer$

L = SendMessage(hWnd, LB_GETTEXTLEN, LbItem, 0)
Buffer = Space$(L + 1)
L = SendMessage(hWnd, LB_GETTEXT, LbItem, ByVal Buffer)
GetListBoxEntry = Left$(Buffer, L)
End Function

Der Fehler liegt jetzt darin, dass dein Code zwar GENERELL funktioniert (hab es vereinfacht probiert) aber leider nicht in meinem Programm. Wäre für jeden Tipp sehr dankbar.
MfG Karl
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mp3 durch Winamp wiedergeben?56Karl05.05.02 21:15
Re: Mp3 durch Winamp wiedergeben?241ModeratorDieter06.05.02 00:08
Re: Mp3 durch Winamp wiedergeben?34Karl06.05.02 14:03
Re: Mp3 durch Winamp wiedergeben?31der_von_vb_kein...07.05.02 11:33
Re: Mp3 durch Winamp wiedergeben?31Karl07.05.02 13:42
Re: Mp3 durch Winamp wiedergeben?225ModeratorDieter07.05.02 13:58
Re: Mp3 durch Winamp wiedergeben?30Karl07.05.02 15:26
Re: Mp3 durch Winamp wiedergeben?217ModeratorDieter07.05.02 19:30
Re: Mp3 durch Winamp wiedergeben?41Karl07.05.02 20:54
Uppss - wie kompliziert...218ModeratorDieter07.05.02 21:12
Re: Uppss - wie kompliziert...25Karl07.05.02 21:44

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel