• Thứ Năm, 24/04/2008 11:09 (GMT+7)

    Hàm Visual Basic hay Windows API lấy thông tin của phần cứng?

    Câu hỏi :
    Có hàm Visual Basic hay Windows API nào có thể lấy thông tin của phần cứng. Và có thể sử dụng trong Excel và Access. Cụ thể lấy 1 trong các thông tin sau: số serial của CPU, số serial của đĩa cứng, số serial của mainboard.

      

    Trả lời :

    Bạn có thể lập trình trong Excel bằng cách dùng ngôn ngữ VBA (Visual Basic for Application). Bản thân các lệnh của VBA cũng như các hàm sẵn có của VBA không có khả năng truy xuất được các thông tin phần cứng cấp thấp của máy như CPU ID... Tuy nhiên Microsoft có cung cấp công nghệ “Windows Management Instrumentation” (WMI) để giúp ta truy xuất các thông tin phần cứng của máy rất dễ dàng, ngắn gọn và an toàn. Thí dụ sau đây là macro GetCPUID với chức năng là đọc và hiển thị CPU ID của máy lên màn hình. Bạn có thể tạo macro GetCPUID trong Word, Excel như sau:

     Sub GetCPUID()
     ‘tạo đối tượng dịch vụ WMI
     Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
     ‘tìm các CPU đang chạy của máy
     Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
     ‘lặp hiển thị ID của từng CPU
     For Each objItem In colItems
     MsgBox "Processor Id: " & objItem.ProcessorId
     Next
     End Sub

    Lưu ý rằng trên các máy PC bình thường, chỉ có 1 CPU nên vòng lặp hiển thị thông tin sẽ chỉ chạy 1 lần và hiển thị ID của CPU duy nhất của máy.

    Ngoài ra để truy xuất các thông tin của 1 thiết bị I/O nào đó, thí dụ như "serial number" của đĩa cứng, bạn có thể gọi hàm API Windows có tên là DeviceIoControl(). Bạn có thể liên hệ với TGVT để copy Project VB 6.0 có tên là VB DispDiskInfo để biết chi tiết về việc gọi hàm DeviceIoControl() để truy xuất các thông tin vật lý của đĩa cứng.

    Chuyên mục: Cơ sở dữ liệu