SAODOINGOI_XD
Thành viên chính thức 


			
		- Tham gia
 - 9/12/11
 
- Bài viết
 - 78
 
- Được thích
 - 71
 
Cho em hỏi hai máy tính có cùng cấu hình y hệt nhau thì nó sẽ khác nhau về cái gì, ý em để  phân biệt đấy là máy A và đây là máy B.
				
			



Sub Test()
  With CreateObject("Wscript.Shell")  
  .Run "cmd /c IPCONFIG > C:\IP_Address.txt", 0, True 
 End With  
With CreateObject("Shell.Application")  
  .Open "C:\IP_Address.txt"  
End With
End Sub
	Khác nhièu chứ:Nếu máy tính nối mạng nội bộ hay internet thì có khai địa chỉ IP thì có thể phân biệt được bằng địa chỉ IP. Em có đọc được đoạn code tìm địa chỉ IP của bác Ndu
Còn cách khác để phân biệt máy nữa không ạ.PHP:Sub Test() With CreateObject("Wscript.Shell") .Run "cmd /c IPCONFIG > C:\IP_Address.txt", 0, True End With With CreateObject("Shell.Application") .Open "C:\IP_Address.txt" End With End Sub


Thế cho em hỏi có thể viết đoạn code như lấy địa IP được không thầy, Lấy Hard Disk ID, CPU IDKhác nhièu chứ:
- Hard Disk ID
- CPU ID
- User Name
- Computer Name
vân vân


 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
	Code báo lỗi? Cụ thể là lỗi gì?Em có sâu tập được trên mạng một đoạn code lấy địa chỉ Id của CPU nhưng không biết chạy bị lỗi, mong thầy và các anh xem và sữa cho em với ạ.
PHP: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


Bạn thử lấy số Bios serial number xem có bị trùng không:Sao em thử chạy đoạn code trên với các máy khác nhau thì hai máy cùng cấu hình cho cùng một kết quả ID của CPU nhả.
Sub Test()
  Dim sComm As String, tmpFile, biosSN
  On Error Resume Next
  With CreateObject("Scripting.FileSystemObject")
    tmpFile = .GetTempName
    sComm = "wmic bios get serialnumber" & " > " & tmpFile
    CreateObject("Wscript.Shell").Run "cmd /c " & sComm, 0, True
    biosSN = Split(.OpenTextFile(tmpFile, 1, 0, -1).ReadAll, vbCrLf)
  End With
  MsgBox biosSN(1)
  Kill tmpFile
End Sub
	

Trên các mạng nước ngoài cũng nhiều người hỏi vấn đề này rồi! Đáng tiếc là tôi không rành lắm, cũng chưa nghiên cứu sâu nên không biết "cái gì" là dấu hiệu phân biệt 100% sự khác nhau giữa 2 máy tínhEm có chạy nó vẫn cho kết quả giống nhau thầy ạ!

Khác nhièu chứ:
- Hard Disk ID
- CPU ID
- User Name
- Computer Name
vân vân
Liệu có Code nào để tìm Drive cho máy được nhanh nhất không hả thày.
Code báo lỗi? Cụ thể là lỗi gì?