Trang chủ » Diễn Đàn » Lập trình và Phát triển Web » Windows Programming » Làm sao bắt sự kiện khay CDRom mở/ đóng?
Chủ đề đã bị khóa, bạn không thể xóa, sửa hay trả lời trong chủ đề này!
|
|
|---|
|
0
Nếu trong ổ CDRom có chứa đĩa dữ liệu, ta có thể bắt sự kiện WM_DEVICECHANGE để biết khi nào khay chứa đĩa mở/ đóng. Cách chính thống hơn thì dùng hàm API RegisterDeviceNotifycation(). Cả hai cách làm việc tương tự nhau. Tôi đã test và nó hoạt động tốt.
Tuy nhiên nếu trong ổ không chứa đĩa, Win không gửi WM_DEVICECHANGE khi khay mở/ đóng. Do vậy không thể dùng 1 trong 2 cách trên được. Vậy ta phải làm thế nào?
___________________________
sorry for my bad En... |
|
|
|
0
Nếu trong ổ CDRom có chứa đĩa dữ liệu, ta có thể bắt sự kiện WM_DEVICECHANGE để biết khi nào khay chứa đĩa mở/ đóng. Cách chính thống hơn thì dùng hàm API RegisterDeviceNotifycation(). Cả hai cách làm việc tương tự nhau. Tôi đã test và nó hoạt động tốt. Nếu không chứa đĩa trong ổ thì bạn quan tâm đến việc đóng mở khay làm gì chứ?
---------
NBThanh Tutorial Room, cập nhật thường xuyên bài viết mới. Các bài viết mới cập nhật: - PHP - Lưu nội dung file ảnh vào CSDL NEW! - Làm việc với CSDL MySQL trong PHP - Học PHP qua ví dụ - Gởi email text, HTML, tiếng việt Unicode - Học PHP qua ví dụ - 1 chương trình download manager/giấu đường dẫn download - Học PHP qua ví dụ - Làm việc với Cookie và Session |
|
|
|
0
Tôi có tiện ích quản lý đĩa, khi nào xử lý xong thì tự động mở khay đĩa để người dùng lấy đĩa ra. Sau đó chờ cho đến khi người dùng đóng khay đĩa lại. Có 2 trường hợp:
- Có đĩa mới: Tiếp tục vòng lặp xử lý. - Không có đĩa: Chấm dứt hàm xử lý (điều kiện kết thúc vòng lặp). Có nhiều cách giải quyết khác. Vd như quy định thời gian khi mở khay đĩa cho người dùng thao tác là 30 giây chẳng hạn. Sau 30 giây kiểm tra ổ đĩa, nếu không có đĩa thì kết thúc vòng lặp... Tuy nhiên tôi muốn tập trung vào vấn đề này: Làm sao bắt sự kiện đóng/ mở khay đĩa của ổ CD/ DVDRom (tạm gọi chung là CDRom) khi không có đĩa trong khay?
___________________________
sorry for my bad En... |
|
|
|
0
Ý tưởng này rất hay. Mình cũng làm với việc nhận biết USB nhưng chưa nghỉ ra ứng dụng cho ổ đĩa. Mà là nhận biết có đĩa hay ko. Chiều đưa đĩa ra sau khi kết thúc công việc chắc làm được. Còn chiều ngược lại khi cho đĩa vào hay không cho thì mình chưa nghỉ ra cách nào.
Bạn làm chưa, hỗ trợ mình được ko |
|
|
|
0
Rất tiếc tôi không làm được trường hợp còn lại. Ở mức người dùng, Windows cho phép tiếp cận một phần với phần cứng thông qua hàm DeviceIoControl(). Tôi nghĩ có thể làm được trường hợp 2 nếu như đi sâu hơn vào nhân Windows, nhưng khả năng có hạn :)
___________________________
sorry for my bad En... |
|
|
|
0
Mình nghỉ cái này khó lắm. Ví dụ đặt cái j lên tay mình thì mình có cảm giác ngay, chứ đặt lên khay đĩa cdrom thì làm sao nó có cảm giác được. Khả năng phải cho ít noron nhân tạo vào nó mới được.
|
