Có lẽ tôi đang đặt câu hỏi quá theo nghĩa đen, nhưng sử dụng API TWAIN, không thể kiểm tra xem thiết bị đã được cắm vào, tức là đã kết nối và bật nguồn chưa. Tiêu chuẩn TWAIN xác định một khả năng cho mục đích này được gọi là CAP_DEVICEONLINE, nhưng tính năng này rất ít được hình thành và do đó rất ít trình điều khiển thực hiện nó một cách chính xác mà nó là vô dụng trong thực tế.
Gần nhất bạn có thể nhận được là: Mở thiết bị (MSG_OPENDS): Hầu như tất cả các trình điều khiển sẽ kiểm tra thiết bị sẵn sàng khi chúng được mở và sẽ hiển thị hộp thoại báo lỗi cho người dùng. Không có cơ chế TWAIN để chặn hoặc phát hiện hộp thoại này Một số trình điều khiển sẽ cho phép người dùng khắc phục sự cố và tiếp tục, trong trường hợp đó (ứng dụng của bạn) sẽ không bao giờ biết có sự cố. Một số trình điều khiển sẽ cho phép người dùng hủy, trong trường hợp đó hoạt động MSG_OPENDS sẽ không thành công, có thể là TWRC_CANCEL nhưng có thể TWRC_FAILURE
Một vài trình điều khiển TWAIN sẽ mở mà không có lỗi ngay cả khi thiết bị không trực tuyến. Trình điều khiển như vậy có thể trả về FALSE thành truy vấn CAP_DEVICEONLINE. Một trình điều khiển như vậy có thể sẽ thực hiện kiểm tra thiết bị trực tuyến khi bạn bật thiết bị với MSG_ENABLEDS, và sau đó nếu thiết bị không trực tuyến, bạn sẽ nhận được hộp thoại báo lỗi cho người dùng và cứ như trên.
Ngoài và IMPO: WIA 'hiện đại hơn' nhưng cũng ít toàn diện hơn để quét hơn TWAIN và trong kinh nghiệm của tôi không thể sử dụng để quét nhiều trang từ bộ nạp tài liệu. Các nhà thiết kế và nhà bảo trì của WIA dường như không hiểu hoặc quan tâm đến các máy quét không phải là flatbeds tiêu dùng thấp. Nó tốt cho máy ảnh.
+1 để giải thích nội dung –