• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Lấy Số Serial Của Main Hoặc Cpu

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

Hình đại diện của người dùng
lanlan
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 310
Ngày tham gia: T.Năm 05/06/2008 8:49 am
Been thanked: 1 time

Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi lanlan » T.Bảy 13/12/2008 7:44 am

Các cao thủ cho em hỏi có cách nào lấy số serial của Main hoặc CPU đưa ra textbox em cảm ơn các anh :x
"•´¨*•.¸¸.*..^_^ one love-one heart ^_^..*.¸¸.•*¨."
_______"•´`•.(¸.•´(¸.•* *•.¸)`•.¸).•´`•"
________________*(¨`•.•´¨)*
__________________`•.¸.•’

Hình đại diện của người dùng
manhtung
Thành viên tích cực
Thành viên tích cực
Bài viết: 109
Ngày tham gia: T.Bảy 12/04/2008 2:16 pm
Đến từ: huế
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi manhtung » T.Bảy 13/12/2008 7:52 am

Mã: Chọn hết

  1.  
  2.  
  3. ManagementObjectSearcher searcher = new
  4. ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
  5.  
  6. foreach(ManagementObject wmi_HD in searcher.Get())
  7. {
  8. HardDrive hd = new HardDrive();
  9. hd.Model = wmi_HD["Model"].ToString();
  10. hd.Type = wmi_HD["InterfaceType"].ToString();
  11.  
  12. hdCollection.Add(hd);
  13. }
  14.  
  15. searcher = new
  16. ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
  17.  
  18. int i = 0;
  19. foreach(ManagementObject wmi_HD in searcher.Get())
  20. {
  21. // get the hard drive from collection
  22. // using index
  23. HardDrive hd = (HardDrive)hdCollection[i];
  24.  
  25. // get the hardware serial no.
  26. if (wmi_HD["SerialNumber"] == null)
  27. hd.SerialNo = "None";
  28. else
  29. hd.SerialNo = wmi_HD["SerialNumber"].ToString();
  30.  
  31. ++i;
  32. }
  33.  

hoặc tham khảo:
Tham khảo các link sau xem thử:
http://www.eggheadcafe.com/articles/20030511.asp
http://www.eggheadcafe.com/articles/20021019.asp
More Simple More Good -- cÀNG đƠN gIẢN cÀNG tỐT

Hình đại diện của người dùng
lanlan
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 310
Ngày tham gia: T.Năm 05/06/2008 8:49 am
Been thanked: 1 time

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi lanlan » T.Bảy 13/12/2008 8:04 am

Cái này hình như không phải viết trên vb6 hay sao ý
"•´¨*•.¸¸.*..^_^ one love-one heart ^_^..*.¸¸.•*¨."
_______"•´`•.(¸.•´(¸.•* *•.¸)`•.¸).•´`•"
________________*(¨`•.•´¨)*
__________________`•.¸.•’

Hình đại diện của người dùng
manhtung
Thành viên tích cực
Thành viên tích cực
Bài viết: 109
Ngày tham gia: T.Bảy 12/04/2008 2:16 pm
Đến từ: huế
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi manhtung » T.Bảy 13/12/2008 10:35 am

ặc, giờ mà còn viết trên vb6 à. Đổi công nghệ đi bạn ơi, đó là code của C# đó
More Simple More Good -- cÀNG đƠN gIẢN cÀNG tỐT

tienlbhoc
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 415
Ngày tham gia: T.Bảy 14/07/2007 10:06 pm
Đến từ: Hà Nội
Been thanked: 1 time

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi tienlbhoc » T.Bảy 13/12/2008 10:36 am

nhưng đây là box vb mà ;))
Diễn đàn và blog phần mềm tự làm :
http://my.opera.com/DienDanTienlbhoc/forums/
http://my.opera.com/tienlbhoc/blog/

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4726
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 475 time

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi truongphu » T.Bảy 13/12/2008 11:10 am

o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
T7
Thành viên danh dự
Thành viên danh dự
Bài viết: 415
Ngày tham gia: T.Năm 24/05/2007 8:19 pm
Đến từ: Long Xuyên - An Giang
Been thanked: 12 time
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi T7 » T.Bảy 13/12/2008 11:35 am

Serial Main

Mã: Chọn hết

  1. Dim objs As Object
  2. Dim obj As Object
  3. Dim WMI As Object
  4. Dim sAns As String
  5.  
  6. Set WMI = GetObject("WinMgmts:")
  7. Set objs = WMI.InstancesOf("Win32_BaseBoard")
  8. For Each obj In objs
  9. sAns = sAns & obj.SerialNumber
  10. If sAns < objs.Count Then sAns = sAns & ","
  11. Next
  12. Msgbox "Serial main: " & sAns


Serial ổ đĩa

Mã: Chọn hết

  1.          Dim fso As Object, Drv As Object
  2.          
  3.           'Create a FileSystemObject object
  4.           Set fso = CreateObject("Scripting.FileSystemObject")
  5.          
  6.           'Assign the current drive letter if not specified
  7.           Set Drv = fso.GetDrive(<Tên ổ đĩa cần tìm>)
  8.      
  9.           With Drv
  10.               If .IsReady Then
  11.                   DriveSerial = Abs(.SerialNumber)
  12.               Else    '"Drive Not Ready!"
  13.                   DriveSerial = -1
  14.               End If
  15.           End With
  16.          
  17.           'Clean up
  18.           Set Drv = Nothing
  19.           Set fso = Nothing
  20.          
  21.           Msgbox "Serial là: " & DriveSerial

Hoặc thử dùng GetDiskSerial DLL 4.0.0 xem, nó cung cấp đầy đủ hơn nhiều :D
http://www.devlib.net/getdiskserial.htm
While (i <= you) i++;

Hình đại diện của người dùng
lanlan
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 310
Ngày tham gia: T.Năm 05/06/2008 8:49 am
Been thanked: 1 time

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi lanlan » T.Bảy 13/12/2008 12:25 pm

Cảm ơn các anh cảm ơn bác truongphu em cũng đã tìm được 1 chân lý rùi
:x
"•´¨*•.¸¸.*..^_^ one love-one heart ^_^..*.¸¸.•*¨."
_______"•´`•.(¸.•´(¸.•* *•.¸)`•.¸).•´`•"
________________*(¨`•.•´¨)*
__________________`•.¸.•’

PhuongThanh37
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 87
Ngày tham gia: T.Sáu 09/09/2005 1:38 pm
Đến từ: Liên Hà, Đông Anh, HN
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi PhuongThanh37 » T.Hai 29/12/2008 6:25 pm

Đó đâu phải là serial của HDD.
Đó chỉ là serial của partition do lúc chia partion nó tạo mà. Và cái đó thay đổi được không chỉ thế mà mỗi lần chia lại là sẽ khác.
Serial của nó phải đi kem với Firmware mà lúc nhà sản xuất đã đặt chứ.

Viết thêm:
Sau khi viết xong bài này thì vào cái link của T7 giới thiệu http://www.devlib.net/buynow.htm
Thấy họ bán GetDiskSerial DLL 4.0.0 Single License = $19.95; Site License = $39.95; Source Code for Delphi = $199.95
Ai có nhu cầu Thanh bán cho giá siêu rẻ so với như thế
Bán cái Source Code cho với giá bằng Single License luôn cho máu
Uống Chanh & nghe Chanh hát

Hình đại diện của người dùng
truongphu1
Thành viên chính thức
Thành viên chính thức
Bài viết: 17
Ngày tham gia: CN 28/12/2008 7:38 pm
Been thanked: 1 time

Thông tin về Hard Disk

Gửi bàigửi bởi truongphu1 » T.Hai 29/12/2008 9:41 pm

PhuongThanh37 đã viết:Đó đâu phải là serial của HDD.
Đó chỉ là serial của partition do lúc chia partion nó tạo mà. Và cái đó thay đổi được không chỉ thế mà mỗi lần chia lại là sẽ khác.
Serial của nó phải đi kem với Firmware mà lúc nhà sản xuất đã đặt chứ.
...
Ai có nhu cầu Thanh bán cho giá siêu rẻ so với như thế
Bán cái Source Code cho với giá bằng Single License luôn cho máu


Mã: Chọn hết

  1.   For Each objItem In GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_DiskDrive")
  2.       a = a & vbCrLf & "BytesPerSector: " & objItem.BytesPerSector
  3.       a = a & vbCrLf & "Caption: " & objItem.Caption
  4.       a = a & vbCrLf & "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
  5.       a = a & vbCrLf & "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
  6.       a = a & vbCrLf & "CreationClassName: " & objItem.CreationClassName
  7.       a = a & vbCrLf & "Description: " & objItem.Description
  8.       a = a & vbCrLf & "DeviceID: " & objItem.DeviceID
  9.       a = a & vbCrLf & "Index: " & objItem.Index
  10.       a = a & vbCrLf & "InterfaceType: " & objItem.InterfaceType
  11.       a = a & vbCrLf & "Manufacturer: " & objItem.Manufacturer
  12.       a = a & vbCrLf & "MediaLoaded: " & objItem.MediaLoaded
  13.       a = a & vbCrLf & "MediaType: " & objItem.MediaType
  14.       a = a & vbCrLf & "Model: " & objItem.Model
  15.       a = a & vbCrLf & "Name: " & objItem.Name
  16.       a = a & vbCrLf & "Partitions: " & objItem.Partitions
  17.       a = a & vbCrLf & "PNPDeviceID: " & objItem.PNPDeviceID
  18.       a = a & vbCrLf & "SCSIBus: " & objItem.SCSIBus
  19.       a = a & vbCrLf & "SCSILogicalUnit: " & objItem.SCSILogicalUnit
  20.       a = a & vbCrLf & "SCSIPort: " & objItem.SCSIPort
  21.       a = a & vbCrLf & "SCSITargetId: " & objItem.SCSITargetId
  22.       a = a & vbCrLf & "SectorsPerTrack: " & objItem.SectorsPerTrack
  23.       a = a & vbCrLf & "Signature: " & objItem.Signature
  24.       a = a & vbCrLf & "Size: " & objItem.Size
  25.       a = a & vbCrLf & "Status: " & objItem.Status
  26.       a = a & vbCrLf & "SystemCreationClassName: " & objItem.SystemCreationClassName
  27.       a = a & vbCrLf & "SystemName: " & objItem.SystemName
  28.       a = a & vbCrLf & "TotalCylinders: " & objItem.TotalCylinders
  29.       a = a & vbCrLf & "TotalHeads: " & objItem.TotalHeads
  30.       a = a & vbCrLf & "TotalSectors: " & objItem.TotalSectors
  31.       a = a & vbCrLf & "TotalTracks: " & objItem.TotalTracks
  32.       a = a & vbCrLf & "TracksPerCylinder: " & objItem.TracksPerCylinder
  33.    Next
  34.     MsgBox a

Hình đại diện của người dùng
manhhung87
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 320
Ngày tham gia: T.Sáu 30/05/2008 8:47 am
Đến từ: Ha Noi University of Industry
Been thanked: 1 time
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi manhhung87 » T.Hai 29/12/2008 11:55 pm

Bác TruongPhu1 cho cháu hỏi dùng References nào để khi đánh objItem. thì nó hỗ trợ vậy
Công cụ quản trị website.
http://www.vnkweb.com

Hình đại diện của người dùng
truongphu1
Thành viên chính thức
Thành viên chính thức
Bài viết: 17
Ngày tham gia: CN 28/12/2008 7:38 pm
Been thanked: 1 time

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi truongphu1 » T.Ba 30/12/2008 6:58 am

* Đây là đoạn mã WMI mà tôi đã chuyển qua code VB6

* Code WMI sẽ gọi WScript.exe (hay CScript.exe qua lệnh cmd) để thi hành một số tác vụ độc lập. Các file chứa code WMI thường viết trên notepad và lưu dưới đuôi VBS, chính WScript là trình biên dịch sẽ biên dịch đoạn code nầy, do đó không liên quan đến VB6 gì cả. Một số lệnh của VB6 không tương thích với WScript và ngược lại

* Để sử dụng một số chức năng trong WScript.exe, bạn có thể Add References WScript.exe vào Project, tuy nhiên thư viện chính sẽ hiện ra với tên IHost với các Class là FileSystemObject, IArguments_Class, IHost_Class, ISWHNamedArguments_Class và ISWHUnnamedArguments_Class. Tất cả các Class nầy không đảm nhận công việc của Code Thông tin Hard Disk nêu trên

* Tóm lại, Code Thông tin Hard Disk không thể Add References để khai báo tường minh được. Với đoạn mã trên, bạn chỉ việc dán vào một sub, ví dụ Private Sub Command1_Click() là xong. Nếu cầu kỳ, bạn có thể viết:

Mã: Chọn hết

  1. Private Sub Command1_Click()
  2. Dim objItem As Object
  3. Dim a as string
  4. '....

Hình đại diện của người dùng
manhhung87
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 320
Ngày tham gia: T.Sáu 30/05/2008 8:47 am
Đến từ: Ha Noi University of Industry
Been thanked: 1 time
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi manhhung87 » T.Ba 30/12/2008 8:17 am

Cháu đã hiểu cảm ơn bác Truongphu1
Công cụ quản trị website.
http://www.vnkweb.com

PhuongThanh37
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 87
Ngày tham gia: T.Sáu 09/09/2005 1:38 pm
Đến từ: Liên Hà, Đông Anh, HN
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi PhuongThanh37 » T.Ba 30/12/2008 9:30 am

Chú ơi chú chưa test rồi. Cái đó làm sao lấy được Serial của physical drive 0. Cái đó chỉ lấy được srial của partition thôi.

Còn mấy cái VBS dùng WMI các bạn có thể xem tại:
http://www.activexperts.com/activmonito ... amples/hw/
http://www.activexperts.com/activmonito ... amples/os/
Muốn test trên VB chỉ việc thay thế Wscript.Echo = MsgBox là ok
Uống Chanh & nghe Chanh hát

Hình đại diện của người dùng
truongphu1
Thành viên chính thức
Thành viên chính thức
Bài viết: 17
Ngày tham gia: CN 28/12/2008 7:38 pm
Been thanked: 1 time

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi truongphu1 » T.Ba 30/12/2008 10:42 am

PhuongThanh37 xem lại chứ
Tập tin đính kèm
untitled.JPG

PhuongThanh37
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 87
Ngày tham gia: T.Sáu 09/09/2005 1:38 pm
Đến từ: Liên Hà, Đông Anh, HN
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi PhuongThanh37 » T.Ba 30/12/2008 11:32 am

Cái đó vẫn đâu phải là seri của ổ cứng
Cái gì cũng có trừ serial mới hay chứ. Cái dòng chú khoanh đỏ có ED-82-27 đó là Firmware.
Cháu Có bộ PC-3000 (http://www.pc3000.com/) chuyên sửa và cưu dữ liệu nên những cái này cháu thuộc lắm.
Serial của hdd đc lưu tại SA của ổ cứng.
Khi bắt đầu đọc ổ cứng sẽ đọc vào SA đầu tiên trong đó lưu trữ các thông tin của nhà sản xuất, các lỗi vật lý ban đầu của nhà sản xuất thông tin về ổ. Nói nôm na là nhiều thức lăm.
Chú muốn biết cái đoạn code của chú thiếu serial thì chú vào tải http://www.devlib.net/getdiskserial.htm về chạy thử sẽ thấy serial của ổ cứng máy chú là gì.

Hoặc chú có thể chạy cái file exe kia của cháu nó cũng đc sử dụng scrip đọc qua WMI đó.
Tập tin đính kèm
serialhdd.zip
(2.34 KiB) Đã tải 353 lần
Uống Chanh & nghe Chanh hát

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4726
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 475 time

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi truongphu » T.Ba 30/12/2008 1:38 pm

Cảm ơn PhuongThanh37
1- Cái serialhdd.exe không chạy ?
2- Sau đây là code của http://www.devlib.net/getdiskserial.htm
bản download demo
Tập tin đính kèm
VisualBasic.zip
(48.79 KiB) Đã tải 531 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

PhuongThanh37
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 87
Ngày tham gia: T.Sáu 09/09/2005 1:38 pm
Đến từ: Liên Hà, Đông Anh, HN
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi PhuongThanh37 » T.Ba 30/12/2008 1:54 pm

Vâng đúng rồi ạ. Cháu không để ý máy cháu chạy Vista chạy đc cháu chưa thử ở XP Sp2. Cháu vừa vào xp sp2 thì chạy đúng là không được.
Và đó chính là lý do cháu không thích sử dụng Scrip đấy chú ạ.
Còn về cái serial chú công nhận là cái đoạn code chú đưa không đọc được serial của hdd không chú.
Để đọc được serial thực của Physical Drive thì phải dùng DeviceIoControl đọc "dfp recive drive data" mới có thể lấy được serial của hdd.
Uống Chanh & nghe Chanh hát

binbo_tm
Bài viết: 1
Ngày tham gia: T.Ba 30/12/2008 6:30 pm

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi binbo_tm » T.Ba 30/12/2008 6:37 pm


PhuongThanh37
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 87
Ngày tham gia: T.Sáu 09/09/2005 1:38 pm
Đến từ: Liên Hà, Đông Anh, HN
Liên hệ:

Re: Lấy Số Serial Của Main Hoặc Cpu

Gửi bàigửi bởi PhuongThanh37 » T.Tư 31/12/2008 8:36 pm

Cái cậu giới thiệu hay và rất đầy đủ của IDSector có ghi rất rõ 256 byte đó.
Uống Chanh & nghe Chanh hát


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.2 khách