|
| VBA: liste alle CD/DVD drev i Combo Fra : Cifly |
Dato : 24-04-05 17:22 |
|
Hej NG
Er der nogen der kan hjælpe mig med en kode til følgende:
Når frm1 loader, skal combo1 liste alle de CD/DVD drev der er tilsluttet
computeren.
Vh Cifly
| |
Per (24-04-2005)
| Kommentar Fra : Per |
Dato : 24-04-05 20:20 |
|
Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
> Hej NG
>
> Er der nogen der kan hjælpe mig med en kode til følgende:
>
> Når frm1 loader, skal combo1 liste alle de CD/DVD drev der er tilsluttet
> computeren.
>
> Vh Cifly
Hej Cifly,
Det kan kodes på flere måder, - men en af måderne kunne være:
-------------------------------------------------------------
Private Sub Form_Load()
CheckDriveList
End Sub
Sub CheckDriveList()
On Error Resume Next
Dim fs, d, dc
Set fs = CreateObject("Scripting.FileSystemObject")
Set dc = fs.Drives
For Each d In dc
If d.drivetype = 4 Then Combo1.AddItem d.driveletter
Next
On Error Goto 0
End Sub
---------------------------------------------------------------
Scripting.FileSystemObject er forøvrigt et kanongodt info-værktøj, som
kan vise praktisk taget alt vedr. drev og filesystemer.
--
Med venlig hilsen
Per
| |
Cifly (25-04-2005)
| Kommentar Fra : Cifly |
Dato : 25-04-05 09:02 |
|
"Per" <Jensenp@Hotmail.com> skrev i en meddelelse
news:MPG.1cd60fc77bb564709896d8@news.tele.dk...
> Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
>
>> Hej NG
>>
>> Er der nogen der kan hjælpe mig med en kode til følgende:
>>
>> Når frm1 loader, skal combo1 liste alle de CD/DVD drev der er tilsluttet
>> computeren.
>>
>> Vh Cifly
>
> Hej Cifly,
>
> Det kan kodes på flere måder, - men en af måderne kunne være:
>
> -------------------------------------------------------------
>
> Private Sub Form_Load()
> CheckDriveList
> End Sub
>
> Sub CheckDriveList()
> On Error Resume Next
> Dim fs, d, dc
> Set fs = CreateObject("Scripting.FileSystemObject")
> Set dc = fs.Drives
> For Each d In dc
> If d.drivetype = 4 Then Combo1.AddItem d.driveletter
> Next
> On Error Goto 0
> End Sub
>
> ---------------------------------------------------------------
>
> Scripting.FileSystemObject er forøvrigt et kanongodt info-værktøj, som
> kan vise praktisk taget alt vedr. drev og filesystemer.
>
>
> --
> Med venlig hilsen
>
> Per
Ahh, det fungerer perfekt. Takker for assistancen
Iøvrigt; er der mon mulighed for, at jeg må kontakte dig på msn/email ved
fremtidige problemer? - Det kan være hurtigere og lettere.
Ellers er det helt ok, hvis du foretrækker at svare her istedet.
Takker!
Cifly
| |
Gert Krabsen (25-04-2005)
| Kommentar Fra : Gert Krabsen |
Dato : 25-04-05 11:06 |
|
Mon, 25 Apr 2005 10:02:24 +0200, Cifly <clauss"nospam"@postkasse.net>
skrev:
>
> Ahh, det fungerer perfekt. Takker for assistancen
>
> Iøvrigt; er der mon mulighed for, at jeg må kontakte dig på msn/email ved
> fremtidige problemer? - Det kan være hurtigere og lettere.
>
> Ellers er det helt ok, hvis du foretrækker at svare her istedet.
>
Nu er det heldigvis svært for vi andre at læse jeres private
mail-korrespondance. Og dermed tilsvarende svært at lære af det - eller
deltage med løsningsforslag.
Det er vel det, der er meningen med gruppen
mvh
Krabsen
--
Sendt via Opera.
www.krabsen.dk
www.responsnord.dk
mfl
| |
Cifly (25-04-2005)
| Kommentar Fra : Cifly |
Dato : 25-04-05 09:17 |
|
"Per" <Jensenp@Hotmail.com> skrev i en meddelelse
news:MPG.1cd60fc77bb564709896d8@news.tele.dk...
> Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
>
>> Hej NG
>>
>> Er der nogen der kan hjælpe mig med en kode til følgende:
>>
>> Når frm1 loader, skal combo1 liste alle de CD/DVD drev der er tilsluttet
>> computeren.
>>
>> Vh Cifly
>
> Hej Cifly,
>
> Det kan kodes på flere måder, - men en af måderne kunne være:
>
> -------------------------------------------------------------
>
> Private Sub Form_Load()
> CheckDriveList
> End Sub
>
> Sub CheckDriveList()
> On Error Resume Next
> Dim fs, d, dc
> Set fs = CreateObject("Scripting.FileSystemObject")
> Set dc = fs.Drives
> For Each d In dc
> If d.drivetype = 4 Then Combo1.AddItem d.driveletter
> Next
> On Error Goto 0
> End Sub
>
> ---------------------------------------------------------------
>
> Scripting.FileSystemObject er forøvrigt et kanongodt info-værktøj, som
> kan vise praktisk taget alt vedr. drev og filesystemer.
>
>
> --
> Med venlig hilsen
>
> Per
Hvad så, iørigt, med størrelsen på mapperne samt navnet på selve CD/DVD i
drevet. - Ka du klare den?
| |
Per (25-04-2005)
| Kommentar Fra : Per |
Dato : 25-04-05 18:10 |
|
Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
> "Per" <Jensenp@Hotmail.com> skrev i en meddelelse
> news:MPG.1cd60fc77bb564709896d8@news.tele.dk...
> > Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
> >> Er der nogen der kan hjælpe mig med en kode til følgende:
> >>
> >> Når frm1 loader, skal combo1 liste alle de CD/DVD drev der er tilsluttet
> >> computeren.
> >> Vh Cifly
> > Det kan kodes på flere måder, - men en af måderne kunne være:
> >
> > -------------------------------------------------------------
> >
> > Private Sub Form_Load()
> > CheckDriveList
> > End Sub
> >
> > Sub CheckDriveList()
> > On Error Resume Next
> > Dim fs, d, dc
> > Set fs = CreateObject("Scripting.FileSystemObject")
> > Set dc = fs.Drives
> > For Each d In dc
> > If d.drivetype = 4 Then Combo1.AddItem d.driveletter
> > Next
> > On Error Goto 0
> > End Sub
> >
> > ---------------------------------------------------------------
> > Med venlig hilsen
> >
> > Per
>
> Hvad så, iørigt, med størrelsen på mapperne samt navnet på selve CD/DVD i
> drevet. - Ka du klare den?
>
>
>
Hej Cifly,
Nu ved jeg jo ikke, hvilken form for projekt, som du har gang i, og jeg
er derfor ikke helt klar over, hvad du mener med "mapperne" - vil du
vise størrelsen på de enkelte mapper i en combobox eller vil du lave din
egen Stifinder eller .... ?
Med hensyn til størrelse på drevets kapacitet og evt. navn på CD/DVD'en
kan du skrive følgende:
Combo1.AddItem d.driveletter & ": " & Format(d.totalsize, "###,###,###,
###") & " Bytes " & " - " & d.volumename
Vær opmærksom på, at de fleste audiocd'ere og DVD'er formentlig vil vise
en kapacitet på 0 bytes.
Du kan også lave et Break-punkt i linien "For Each d In dc" og dernæst
lave en Watch på variablen "dc". Så kan du på en nem måde se alle de
oplysninger, som Scripting.FileSystemObject indeholder.
Skal du ind og have fat i den type oplysninger, som f.eks.
brænderprogrammet "NERO" kan udlæse - ja så bliver jeg dig svar skyldig
- men jeg gætter på, at vi så skal have fat i noget API-halløj.
Go' fornøjelse med projektet.
PS ! Og nej - jeg svarer kun her i NG'en (for måske er der andre, som
gerne vil give deres besyv med)
--
Med venlig hilsen
Per
| |
Cifly (26-04-2005)
| Kommentar Fra : Cifly |
Dato : 26-04-05 06:52 |
|
"Per" <Jensenp@Hotmail.com> skrev i en meddelelse
news:MPG.1cd74291c125bfc09896da@news.tele.dk...
> Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
>
>> "Per" <Jensenp@Hotmail.com> skrev i en meddelelse
>> news:MPG.1cd60fc77bb564709896d8@news.tele.dk...
>> > Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
>
>> >> Er der nogen der kan hjælpe mig med en kode til følgende:
>> >>
>> >> Når frm1 loader, skal combo1 liste alle de CD/DVD drev der er
>> >> tilsluttet
>> >> computeren.
>> >> Vh Cifly
>
>> > Det kan kodes på flere måder, - men en af måderne kunne være:
>> >
>> > -------------------------------------------------------------
>> >
>> > Private Sub Form_Load()
>> > CheckDriveList
>> > End Sub
>> >
>> > Sub CheckDriveList()
>> > On Error Resume Next
>> > Dim fs, d, dc
>> > Set fs = CreateObject("Scripting.FileSystemObject")
>> > Set dc = fs.Drives
>> > For Each d In dc
>> > If d.drivetype = 4 Then Combo1.AddItem d.driveletter
>> > Next
>> > On Error Goto 0
>> > End Sub
>> >
>> > ---------------------------------------------------------------
>
>> > Med venlig hilsen
>> >
>> > Per
>>
>> Hvad så, iørigt, med størrelsen på mapperne samt navnet på selve CD/DVD i
>> drevet. - Ka du klare den?
>>
>>
>>
>
> Hej Cifly,
>
> Nu ved jeg jo ikke, hvilken form for projekt, som du har gang i, og jeg
> er derfor ikke helt klar over, hvad du mener med "mapperne" - vil du
> vise størrelsen på de enkelte mapper i en combobox eller vil du lave din
> egen Stifinder eller .... ?
>
> Med hensyn til størrelse på drevets kapacitet og evt. navn på CD/DVD'en
> kan du skrive følgende:
>
> Combo1.AddItem d.driveletter & ": " & Format(d.totalsize, "###,###,###,
> ###") & " Bytes " & " - " & d.volumename
>
> Vær opmærksom på, at de fleste audiocd'ere og DVD'er formentlig vil vise
> en kapacitet på 0 bytes.
>
> Du kan også lave et Break-punkt i linien "For Each d In dc" og dernæst
> lave en Watch på variablen "dc". Så kan du på en nem måde se alle de
> oplysninger, som Scripting.FileSystemObject indeholder.
>
> Skal du ind og have fat i den type oplysninger, som f.eks.
> brænderprogrammet "NERO" kan udlæse - ja så bliver jeg dig svar skyldig
> - men jeg gætter på, at vi så skal have fat i noget API-halløj.
>
> Go' fornøjelse med projektet.
>
> PS ! Og nej - jeg svarer kun her i NG'en (for måske er der andre, som
> gerne vil give deres besyv med)
>
>
> --
> Med venlig hilsen
>
> Per
Det er bare helt i orden. Sommetider er det bare lettere, at have kontakt
med en støtte. Men synspunktet deler jeg for så vidt også - det gør vi bare.
Nu er jeg imidlertid gået over til VB. Det er godt nok længe siden jeg har
programmeret her, men de allerede eksisterende koder, er jo nogenlunde de
samme.
Nu er der så bare dukket et problem op: ved indlæsning i textbox, skrives
mappernes navne i en lang smøre (Mappe1Mappe2Mappe3...) trods at Multiline
er True og chr(13) i koden. Jeg kan ikke umiddelbart se hvorfor det sker,
kan du/i?
Mit projekt er såmænd ikke så stort. Jeg skal bruge printet af mapper, til
bagsiden på mine backup cd'er. Ved at lave en lille app. er jeg fri for at
indtaste det i hånden. Endvidere kan jeg trække forskellige oplysninger ud,
hurtigere og nemmere end hvis jeg selv skulle undersøge det i Stifinder.
Resultatet skulle gerne blive, at printet inkl. størrelse etc. suppleres med
et auto setup af cover, så det bare er lige til at udskrive.
Cifly
| |
Per (26-04-2005)
| Kommentar Fra : Per |
Dato : 26-04-05 20:23 |
|
Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
<snip>
>
> Nu er der så bare dukket et problem op: ved indlæsning i textbox, skrives
> mappernes navne i en lang smøre (Mappe1Mappe2Mappe3...) trods at Multiline
> er True og chr(13) i koden. Jeg kan ikke umiddelbart se hvorfor det sker,
> kan du/i?
</snip>
> Cifly
Hej Cifly,
Forinden jeg svarer kunne jeg godt tænke mig at se den del af din kode,
hvor du udlæser mapperne til en textbox.
Men jeg gætter alligevel på, at du skal bruge vbcrlf (svarer til Enter +
ny linie) istedet for chr(13)(som kun svarer til Enter)
--
Med venlig hilsen
Per
| |
Cifly (27-04-2005)
| Kommentar Fra : Cifly |
Dato : 27-04-05 11:23 |
|
"Per" <Jensenp@Hotmail.com> skrev i en meddelelse
news:MPG.1cd8b39a995eaf2e9896db@news.tele.dk...
> Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
>
> <snip>
>>
>> Nu er der så bare dukket et problem op: ved indlæsning i textbox, skrives
>> mappernes navne i en lang smøre (Mappe1Mappe2Mappe3...) trods at
>> Multiline
>> er True og chr(13) i koden. Jeg kan ikke umiddelbart se hvorfor det sker,
>> kan du/i?
> </snip>
>
>> Cifly
>
> Hej Cifly,
>
> Forinden jeg svarer kunne jeg godt tænke mig at se den del af din kode,
> hvor du udlæser mapperne til en textbox.
>
> Men jeg gætter alligevel på, at du skal bruge vbcrlf (svarer til Enter +
> ny linie) istedet for chr(13)(som kun svarer til Enter)
>
> --
> Med venlig hilsen
>
> Per
Du havde ret. Det fungerer med vbcrlf. Takker.
--------------------------------------------------------------------------------------
Private Sub Form_Load()
mypath = drev ' Set the path.
myname = Dir(mypath, vbDirectory) ' Retrieve the first entry.
Do While myname <> "" ' Start the loop.
' Ignore the current directory and the encompassing directory.
If myname <> "." And myname <> ".." Then
' Use bitwise comparison to make sure MyName is a directory.
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
Txtresult.Text = Txtresult.Text & vbCrLf & myname ' Display
entry only if it
End If ' it represents a directory.
End If
myname = Dir ' Get next entry.
Loop
LblResult.Caption = "Følgende mapper blev fundet på drev " & mypath
End Sub
--------------------------------------------------------------------------------------
Er du frisk på én mere? - Ved indlæsning, indsættes i starten en blank linie
og herefter mapperne. Hvor stammer den blanke linie fra?
Cifly
| |
Per (27-04-2005)
| Kommentar Fra : Per |
Dato : 27-04-05 19:36 |
|
Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
>
> --------------------------------------------------------------------------------------
> Private Sub Form_Load()
> mypath = drev ' Set the path.
> myname = Dir(mypath, vbDirectory) ' Retrieve the first entry.
> Do While myname <> "" ' Start the loop.
> ' Ignore the current directory and the encompassing directory.
> If myname <> "." And myname <> ".." Then
> ' Use bitwise comparison to make sure MyName is a directory.
> If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
> Txtresult.Text = Txtresult.Text & vbCrLf & myname ' Display
> entry only if it
> End If ' it represents a directory.
> End If
> myname = Dir ' Get next entry.
> Loop
> LblResult.Caption = "Følgende mapper blev fundet på drev " & mypath
> End Sub
> --------------------------------------------------------------------------------------
>
> Er du frisk på én mere? - Ved indlæsning, indsættes i starten en blank linie
> og herefter mapperne. Hvor stammer den blanke linie fra?
>
> Cifly
>
>
Hej Cifly
Denne linie:
Txtresult.Text = Txtresult.Text & vbCrLf & myname ' Display
skal du ændre til:
Txtresult.Text = Txtresult.Text & myname & vbCrLf ' Display
da du ellers vil starte med at lægge et linieskift ind som det første i
textboxen.
--
Med venlig hilsen
Per
| |
Cifly (27-04-2005)
| Kommentar Fra : Cifly |
Dato : 27-04-05 19:42 |
|
"Per" <Jensenp@Hotmail.com> skrev i en meddelelse
news:MPG.1cd9f9ef3ba3bb719896dd@news.tele.dk...
> Cifly < "Cifly" <clauss"nospam"@postkasse.net> > skrev følgende:
>
>>
>> --------------------------------------------------------------------------------------
>> Private Sub Form_Load()
>> mypath = drev ' Set the path.
>> myname = Dir(mypath, vbDirectory) ' Retrieve the first entry.
>> Do While myname <> "" ' Start the loop.
>> ' Ignore the current directory and the encompassing directory.
>> If myname <> "." And myname <> ".." Then
>> ' Use bitwise comparison to make sure MyName is a directory.
>> If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
>> Txtresult.Text = Txtresult.Text & vbCrLf & myname ' Display
>> entry only if it
>> End If ' it represents a directory.
>> End If
>> myname = Dir ' Get next entry.
>> Loop
>> LblResult.Caption = "Følgende mapper blev fundet på drev " & mypath
>> End Sub
>> --------------------------------------------------------------------------------------
>>
>> Er du frisk på én mere? - Ved indlæsning, indsættes i starten en blank
>> linie
>> og herefter mapperne. Hvor stammer den blanke linie fra?
>>
>> Cifly
>>
>>
>
> Hej Cifly
>
> Denne linie:
> Txtresult.Text = Txtresult.Text & vbCrLf & myname ' Display
>
> skal du ændre til:
> Txtresult.Text = Txtresult.Text & myname & vbCrLf ' Display
>
> da du ellers vil starte med at lægge et linieskift ind som det første i
> textboxen.
>
> --
> Med venlig hilsen
>
> Per
Hoold op, hvor er jeg blind. Du kender det garanteret, at man ser sig blind
på ét sted og ser så ikke den snublende nære fejl. Nå, men takker ....
Igen.
| |
|
|