03. juli 2008 - 13:29Der er
19 kommentarer og 1 løsning
FileSystemWatcher hold øje med om en cd sættes i cd-drev
Jeg vil gerne holde høje med om der sættes en cd i mit d-drev og herefter kopiere jpg-filer til en bestemt destination. Jeg vil gerne bruge FileSystemWatcher (system.io)
FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = path;
Får desværre en fejl på path = @"d:\" når der ikke er nogen cd i. Kan det løses ?
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Du kan ikke bruge en FileSystemWatcher til dette. Du kan gøre det ved hjælp af System.Management klasserne og WMI. Jeg skal se om jeg kan finde et eksempel.
Jeg ved ikke helt hvad du mener med at du skal foretage et valg?
Bare kør koden og vent op til 15 sekunder, så vil navnet på cden blive skrevet på konsol vinduet. Grunden til der er en Console.ReadLine() i programmet, er for at konsolvinduet ikke skal lukke før du når at indsætte en cd.
Koden tjekker cd drevet hver 15. sekund. Hvis du vil have den til at tjekke oftere, kan du ændre WqlEventQuery.WithinInterval propertien, som i eksemplet bliver sat til 15 sekunder.
Prøv at ændre på WqlEventQuery.Condition propertien. Prøv at fjerne "TargetInstance.DriveType = 5". Så vil jeg umiddelbart tro at den kan detektere harddiske, usb-pins og alt muligt andet. Dette har jeg dog ikke testet.
OM igen. Hvis jeg fjerne TargetInstance.DriveType = 5: kører everten spontant uden at jeg har taget noget USB-pin eller cd ud eller sat i. Jeg ved ikke, hvad det er den registrere ?
Ovenstående virker egentlig rimelig godt. Men det er ligesom min eksterne harddisk kan blokere processen. Men det virker ellers både med usbdrev og med cd ud og ind.
Virker dog ikke på indsat kamerakort. Men her er nok ikke noget at gøre.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.