Musze w programie zaimplementować metodę, która będzie monitorowała, czy w napędach CD/DVD/itp znajduje się płyta. Może istnieje jakiś komunikat systemu, który powiadamia o otwarci i zamknięciu szufladki (choć mi takiego czegoś się nie udało znaleŹć). A może są jakiś bardziej wyrafinowane sposoby? Proszę, pomóżcie [!!!]
dla Windows jest moduł MMSystem ( Win32 multimedia API Interface Unit )
na przykład:
MCISendString('Set cdaudio door open wait',nil,0,Handle);
wysunie tackę cd-rom'u
poszukaj w tym module to być może znajdziesz pobieranie stanu napędu, lecz wątpię by było na to jakieś zdarzenie, więc szykuj wątek lub Timer'ek =)
też kiedyś szukałem, ale bezpłatnego rozwiązania nie znalazłem. chciałem mieć program który zgrywa automatycznie płyty jedna po drugiej bez interakcji z użytkownikiem (tylko wysuwa tackę po zakończeniu zgrywania), napisz jak coś wskórasz. aha, korzystałem z czegoś takiego jak aaxDriveManager, nie działało jednak tak jak chciałem, zresztą dawno to było i nie pamiętam szczegółów.
a FindFirstChangeNotification/FindNextChangeNotification? ze zmianą zawartości katalogów i plików radzi sobie bez problemu, więc powinno sobie dać radę i z napędem.
Rozwiązałem to w końcu tak, że zmodyfikowałem komponent TCDEvents, dodają listę z informacjami o ostatniej płycie w każdym napędzie i porównując z tymi informacjami, za każdym wywołaniem zdarzenia Timera numer seryjny płyty.
Dzięki za podpowiedzi [!!!]