Witam,
Jestem początkujący w C# tak więc proszę o wyrozumiałość.Korzystam z Visual Studio 2008. Piszę programik którego jedną z funkcjonalności jest wyświetlenie drzewa katalogów znajdujących się na CD/DVD. Program oparty o Windows Forms. Wiem jak wyświetlić drzewo katalogów znajdujących się na CD/DVD ale nie wiem jak zrobić żeby wyświetlało się to automatycznie tzn. żeby po włożeniu płyty do któregoś z napędów (mam 2) pojawiała się w oknie treeView struktura katalogów i analogicznie po wyjęciu napędu znikała. próbowałem coś z WMI ale nic z tego nie wyszło :/ Może ktoś pomoże?
Ja bym zrobił sobie jakiegoś Timera, który chodziłby w tle i sprawdzał, np. tak:
private void timer1_Tick(object sender, EventArgs e)
{
DriveInfo[] dyski = DriveInfo.GetDrives();
foreach (DriveInfo d in dyski)
if (d.DriveType == DriveType.CDRom && d.IsReady)
{
this.timer1.Stop();
MessageBox.Show("Włożono płytę do: " + d.RootDirectory);
}
}
Myślę że pomocnym może być ten link:
http://potchara.pruksasri.net/blog/wp-c ... ectrom.rar
Zawiera projekt w C#, który automatycznie wykrywa CD/DVD.
http://www.codeproject.com/KB/system/DriveDetector.aspx
Co prawda jest to przeznaczone do wykrywania/usuwania nośników usb, ale łatwo można przystosować do obsługi cd-romów, które też są traktowane jak nośniki wymienne. Pomysł z timerem jest prosty, ale niezbyt dobry
Dzięki rzeczywiście działa tylko jest z tym taki problem, że jak włożę inną płytę to nie buduję już nowego drzewa tylko pozostaje z poprzedniego CD/DVD :-( (chodzi o wersję z timerem )
natomiast napisał(a)
Dzięki rzeczywiście działa tylko jest z tym taki problem, że jak włożę inną płytę to nie buduję już nowego drzewa tylko pozostaje z poprzedniego CD/DVD :-( (chodzi o wersję z timerem )
No to zaprogramuj tak, żeby odświeżyło.
Jakiś problem wykryć, czy płytka została wyjęta i włożona? :|
Może przed wczytaniem nowego drzewa katalogu - wyczyść listę. Ale nic nie można powiedzieć dokładnie bo nawet nie raczyłeś pokazać swojego kodu :-P