Windows ให้ข้อมูลเกี่ยวกับอุปกรณ์ที่เชื่อมต่อประเภทต่างๆ เช่น ฮาร์ดดิสก์ ซีดีรอม เครื่องพิมพ์ และอื่นๆ อุปกรณ์เหล่านี้สามารถต่อเข้ากับคอมพิวเตอร์ผ่านอินเทอร์เฟซต่างๆ เช่น USB, SCSI, พอร์ตอนุกรมหรือขนาน ฯลฯ
ดูวิดีโอตัวอย่างสิ่งที่คุณสามารถทำได้ในแอปพลิเคชันฐานข้อมูล Access (DeviceDetectorAuthDemo.accdb) ที่นี่:
https://www.youtube.com/watch?v=qh5hrhpRNIg
AxDeviceDetector.exe เป็นเซิร์ฟเวอร์ EXE ActiveX OOP (ไม่อยู่ในกระบวนการ) (32 บิต) ที่แสดง 2 คลาส:
มีสามโครงการในพื้นที่เก็บข้อมูลนี้:
AxDeviceDetector.vbp
SaDeviceDetector.vbp
นี่ไม่ใช่เซิร์ฟเวอร์ ActiveX เพียงเป็นปฏิบัติการแบบสแตนด์อโลนที่ทำหน้าที่เป็นตัวอย่างและสาธิต
คุณสามารถเรียกใช้ไฟล์ปฏิบัติการนี้ได้ โดย ไม่จำเป็นต้องลงทะเบียนเซิร์ฟเวอร์ ActiveX เพื่อให้มันทำงานได้ เนื่องจากไม่ได้ใช้คลาสผ่าน ActiveX แต่พวกมันจะถูกฝังแบบส่วนตัวในไฟล์ปฏิบัติการ โครงการนี้ใช้คลาสเดียวกัน แต่เพิ่มแบบฟอร์ม frmDetector ที่แสดงเหตุการณ์ในกล่องรายการ
คำเตือน : เมื่อคุณเริ่มโปรเจ็กต์นี้ใน Visual Basic IDE มันจะบอกคุณว่าคลาสทั้งสอง (DeviceDetector และ DeviceInfo) มีอินเทอร์เฟซสาธารณะ ซึ่งไม่สามารถทำได้สำหรับปฏิบัติการแบบสแตนด์อโลน สิ่งนี้เกิดขึ้นเนื่องจากทั้งสองโปรเจ็กต์แชร์ไฟล์ต้นฉบับเดียวกัน Visual Basic IDE จะเปลี่ยนคุณสมบัติเหล่านี้เป็นส่วนตัว อย่าบันทึกโปรเจ็กต์ด้วยการเปลี่ยนแปลงเหล่านี้ ไม่เช่นนั้นคุณจะต้องคืนค่าโปรเจ็กต์กลับไปเป็น "การใช้งานหลายรายการ" สำหรับโปรเจ็กต์เซิร์ฟเวอร์ ActiveX
AxDeviceDetectorTest.vbp
มีโพสต์บนบล็อกที่อธิบายโครงการนี้ในบล็อกส่วนตัวของฉัน
Deviceinfo.dll DLL ที่จำเป็นในโปรเจ็กต์นี้สร้างขึ้นด้วย Visual Studio 2017 (โปรดดูที่พื้นที่เก็บข้อมูล deviceinfo_dll readme) ดังนั้นจึงจำเป็นต้องมีรันไทม์ Visual C 2017 (x86) ที่สอดคล้องกันที่ติดตั้งบนคอมพิวเตอร์เป้าหมายเพื่อให้ทำงานได้อย่างถูกต้อง
คุณจะต้องมี msvbvm50.dll Visual Basic 5 runtime DLL (SP3) ด้วย
ไฟล์ zip ที่ดาวน์โหลดได้มีทั้ง DLL ที่จำเป็น ซึ่งคุณควรวางไว้ในตำแหน่งที่ไฟล์ exe อยู่ หรือในไดเร็กทอรี PATH รายการใดรายการหนึ่งของคุณ