Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Diskdrive en Diskette herkennen in VB 6.0

h4xX0r
15 antwoorden
  • Hallo

    Ik ben begonnen in vb 6.0 te programeren (leuke hobby)
    voor het programma wat ik aan het schrijven ben heb ik een routine nodig
    1. die kijkt of er een diskdrive (A schijf) aanwezig is.(sommige nieuwe computer hebben die niet meer)
    2. Of hier een diskette in zit
    3. en of er een bepaald file op deze disk staat (bv test.dat)

    wie kan mij helpen

    vast bedankt Ed
  • Je kan natuurlijk gewoon proberen die file in te lezen, en dan een eventuele fout af te vangen. Dan wordt als het goed is (kan zelf geen VB) wel aangegeven of het bestand niet bestaat, of dat A:\ niet bestaat, of dat er geen disk aanwezig (lijkt te zijn/) is
  • Maak een loop die een bestand van de A:/ schijf wil laden. Zet boven End Sub():

    On Error goto errhandler

    ErrHandler:
    msgbox("Geen A:/ schijf")


    Het probleem hierbij is dat je niet het verschil weet tussen een ontbrekende schijf of diskette
  • Door gebruik te maken van scrrun.dll (= Microsoft Scripting Runtime referentie) doe je het volgende:[code:1:58435a7d00]Private Sub ProbeDrive()
    Dim fso As New FileSystemObject
    Dim Drive As Drive

    If fso.DriveExists("a:") Then
    'Er is een floppy
    Set Drive = fso.GetDrive("a:")

    If Drive.IsReady = True Then
    'Er zit een diskette in
    If fso.FileExists("a:\test.dat") = True Then
    'Het bestand bestaat
    End If
    End If
    End If
    End Sub[/code:1:58435a7d00]Voilà.

    Om te leren omgaan met bestanden: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=42720&lngWId=1 :wink:
  • Ik heb de bovenstaande code wel niet kunnen testen, aangezien ik geen floppy meer heb …

    Theoretisch gezien moet het juist zijn (denk ik toch).
  • [quote:4fa7a80e09="BelgiumBoy_007"]Ik heb de bovenstaande code wel niet kunnen testen, aangezien ik geen floppy meer heb …[/quote:4fa7a80e09]
    floppy disk emulator

    B.T.W. is in bovenstaande codes het effect ongeveer hetzelfde als je daarvoor je CD-ROM speler gebruikt.
  • [quote:ab86faa40f="h4xX0r"][quote:ab86faa40f="BelgiumBoy_007"]Ik heb de bovenstaande code wel niet kunnen testen, aangezien ik geen floppy meer heb …[/quote:ab86faa40f]
    floppy disk emulator

    B.T.W. is in bovenstaande codes het effect ongeveer hetzelfde als je daarvoor je CD-ROM speler gebruikt.[/quote:ab86faa40f]Exact hetzelfde zelfs, gewoon de a: vervangen naar de locatie van de CD-ROM speler (logisch) :wink:
  • Ik zou daar wel even een stukje code aan toevoegen dat de driveletter van de cdromspeler opvraagt. Aangezien die bij ongeveer iedereen wel verschilt.
  • De vraag was wel voor een floppy hé
  • De routine ProbeDrive lijkt precies te doen wat ik bedoel
    Routine ge kopieerd en uit geprobeerd
    maar ik krijg de melding Compile error: User-definedtype not defined
    op de regel Dim fso As New FileSystemObject via de help geprobeerd er
    achter te komen wat dit betekent maar het lukt niet.
    Wat doe ik fout of staat verkeerd in gesteld ?
  • [quote:1caf2eb397="turbo-pascal"]Je kan natuurlijk gewoon proberen die file in te lezen, en dan een eventuele fout af te vangen. Dan wordt als het goed is (kan zelf geen VB) wel aangegeven of het bestand niet bestaat, of dat A:\ niet bestaat, of dat er geen disk aanwezig (lijkt te zijn/) is[/quote:1caf2eb397]

    dat is een nasty manier :lol: het werkt vast wel, maar een beetje netjes proggen kan geen kwaad 8)
  • Je moet nog de referentie 'Microsoft Scripting Runtime' toevoegen aan je project.

    [u:6e562145dc]P[/u:6e562145dc]roject > Refere[u:6e562145dc]n[/u:6e562145dc]ces… en dan zoeken naar de referentie.

    Het is mogelijk dat ze nog niet in de lijst staat, in dat geval: Browse… en het bestand 'C:\WINDOWS\System32\scrrun.dll' toevoegen.
  • [quote:b9bf9a6e2b="turbo-pascal"]Je kan natuurlijk gewoon proberen die file in te lezen, en dan een eventuele fout af te vangen. Dan wordt als het goed is (kan zelf geen VB) wel aangegeven of het bestand niet bestaat, of dat A:\ niet bestaat, of dat er geen disk aanwezig (lijkt te zijn/) is[/quote:b9bf9a6e2b]Volgens mij geeft hij dan gewoon de simpele error 'File Not Found'.
  • Hallo forum
    De routine Driveprobe door “Belgiumboy 007” werkt prima na het laden van
    Referentie “Microsoft Scripting Run time” via Project_References
    Bedankt hier voor zo doet hij precies wat ik wil.

    Ook andere voorgestelde oplossingen werken wel, maar met bv de oplossing afvangen van de fout is er veel meer programma code nodig en een onderscheid maken tussen de fout codes is lastiger.
    bv op een pc waar geen drive aanwezig geeft hij een foutcode 71 “Disk not ready” in plaats
    van 68 “Device unavailable”
    Foutcode 71 geeft hij ook bij een pc waar wel een drive aanwezig is maar geen disk in zit.

    Interessant is misschien te weten:
    Welke Project_References het best kan inladen bij het beginnen van een project, er worden er blijkbaar maar een paar standaard geladen, en zo te zien zijn er vele.
    Kan je ergens lezen wat ze doen en wanneer je ze nodig hebt.
    Zal best wel ergens op het net staan.
    Ik ga nu verder met het uitwerken van de Routine Driveprobe voor mijn project.
    Nogmaals bedankt.
    Ed
  • [quote:f06ad79ddd="Ed Jongenelis"]Kan je ergens lezen wat ze doen en wanneer je ze nodig hebt.[/quote:f06ad79ddd]Als je de referentie hebt toegevoegd, open dan de Object Browser (F2, of View > [u:f06ad79ddd]O[/u:f06ad79ddd]bject Browser). Als je dan uit de lijst (waar er staat <All Libraries>;) je toegevoegde referentie kiest dan kan je ze verkennen :wink:

    Er zijn er inderdaad zeer veel. De hoeveelheid zal afhangen van hoeveel software er op je pc staat want programma's als Windows Messenger hebben bvb. 4 referenties. Je kan zelfs zelf met Visual Basic referenties maken die je dan toevoegd aan andere projecten!

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.