Toon posts:

[vb6] weten wat voor type file het is

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben namelijk zelf met iets bezig om een soort simpele verkenner te maken. Waardoor je door je dirs kan bladeren enz en ook je bestanden kan openen.

Maar voor de bestanden te zien gebruik ik een normale listbox en geen filelistbox. En dat wil allemaal wel. Ik kan ze zien en dir's ook en kan ook goed bladeren. Alleen om te openen gebruik ik deze code:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Dim lngI, lngTotaal As Long

    If KeyCode = vbKeyReturn Then
        If Right(lstLijst.Text, 4) = ".txt" Then
            Shell "c:\windows\notepad.exe " & pad & lstLijst.Text, vbNormalFocus
        ElseIf Right(lstLijst.Text, 4) = ".mp3" Then
            Shell "C:\Program Files\Windows Media Player\wmplayer.exe " & pad & lstLijst.Text, vbMinimizedNoFocus
        ElseIf Right(lstLijst.Text, 4) = ".doc" Then
            Shell "C:\Program Files\Accessories\WORDPAD.EXE " & pad & lstLijst.Text, vbNormalFocus
        ElseIf lstLijst.Text = ".." Then
            Directpak
            pad = Left(pad, intVorigepositiegevonden)
            lstLijst.Clear
            Dirlees
            lstLijst.Refresh
        ElseIf lstLijst.Text = "." Then
             lngI = 1
             lngTotaal = Len(pad)
             For lngI = 1 To lngTotaal
                If Mid(pad, lngI, 1) = "\" Then
                    pad = Mid(pad, 1, lngI)
                    lstLijst.Clear
                    Dirlees
                   lstLijst.Refresh
                End If
            Next lngI
        ElseIf InStr(lstLijst.Text, ".") = 0 And Len(lstLijst.Text) > 0 Then
            pad = pad & lstLijst.Text & "\"
            lstLijst.Clear
            Dirlees
            lstLijst.Refresh
        End If
    End If


Dit is alleen heel omslachtig als ik dit voor alle extensies doe die er zijn kan ben ik me leven lang alleen al bezig met if statements maken.

Mijn vraag was.. Kan ik van het pad + filename(die is lees uit de listbox) ook het type file bepalen. Want in de help van VB kan ik nix vinden , google geeft ook niet echt uitkomst en de search van GoT ook niet. :(

Verwijderd

Je kan gewoon de API call ShellExecute gebruiken. Dan opent windows zelf het bijbehorende programma :). Met Google en op www.pscode.com zijn genoeg voorbeeldjes te vinden.

/Edit: Vergeet trouwens niet om de filenaam tussen quotes (") te zetten omdat het anders fout gaat als er spaties inzitten...

[ Voor 28% gewijzigd door Verwijderd op 12-01-2003 14:30 ]


  • DarkSilence
  • Registratie: December 2002
  • Laatst online: 19-12-2025

DarkSilence

W3designer.nl

ja kan natuurlijk de extensie achterhalen van een bestand. Ik zou wel anders de extensie achterhalen dan in jou code. Want niet alle extensies hebben 3 karakters er zijn er ook enkele met vier of weer minder zoals *.wave, *.html etc. Maar dit ff ter zijde

Als je de extensie hebt kun je in het windows register gaan zoeken op die extensie. Je zoekt gewoon in HKEY_CLASSES_ROOT\.mp3

je leest de standaard key uit en je gaat opzoek naar die waarde in HKEY_CLASSES_ROOT
Bij mijn voorbeeld is dat HKEY_CLASSES_ROOT\Winamp.file

En bij die sleutel vind je meer info welk programme het bestand opend etc.\

Beetje mee stoeien is misschien wat lastig voor een beginner. Suc6 8)

W3designer.nl


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

DarkSilence schreef op 12 januari 2003 @ 14:37:
Als je de extensie hebt kun je in het windows register gaan zoeken op die extensie. Je zoekt gewoon in HKEY_CLASSES_ROOT\.mp3

je leest de standaard key uit en je gaat opzoek naar die waarde in HKEY_CLASSES_ROOT
Bij mijn voorbeeld is dat HKEY_CLASSES_ROOT\Winamp.file
Dan kun je net zo goed ShellExecute gebruiken. :) Wat jij probeert is handig als je informatie over t type wilt weten, zoals hoe het heet, en wat voor icon erbij hoort.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • DarkSilence
  • Registratie: December 2002
  • Laatst online: 19-12-2025

DarkSilence

W3designer.nl

Ja dat is zo ik gerbuik zelf de code die ik omschreef om inderdaad het icoon op te halen. Ik ben bezig met een verkenner te maken waar je mp3'tjes heel makkelijk in kan bewerken. Ik haal icoontjes voor de bestanden uit het register

W3designer.nl


Verwijderd

Topicstarter
Thnx .. ik zal er vanavond even mee stoeien .. kijken of ik het voor elkaar kan krijgen ..

Ik post vanavond of het lukte of niet

Verwijderd

Topicstarter
Verwijderd schreef op 12 januari 2003 @ 17:09:
Thnx .. ik zal er vanavond even mee stoeien .. kijken of ik het voor elkaar kan krijgen ..

Ik post vanavond of het lukte of niet
/edit:

heb het geprobeerd maar ik kan geen shellexecute gebruiken. wat ik doe is

ik kan shellexecute niet gebruiken. of ik doe het fout hoor

maar ik doe

Visual Basic:
1
shellexecute pad & lstlijst.text


krijg error dat de sub of functie er niet is.. dus hij doet ut niet

[ Voor 8% gewijzigd door Verwijderd op 12-01-2003 17:51 ]


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Heb je de functie wel gedeclareerd? Want het is geen standaard VB functie.

De declaratie moet je in een losse module stoppen en luidt als volgt:
Visual Basic:
1
Public Declare Function ShellExecute Lib "shell32" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Voor documentatie van de functie, volg deze link.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

Topicstarter
uhm neej dat had ik niet .. Dacht dat het een standard VB functie was ofzow.
Pagina: 1