Xin Chibi hướng dẫn cách lấy số serial của HDD hay cardLAN .Nếu bằng VBA thì càng tuyệt vời. Cảm ơn Chibi nhiều !chibi đã viết:- Lấy một số cố định của máy: Ví dụ như serial của HDD hay cardLAN, hoặc số ngẫu nhiên chứa trong một tệp do Add in phát sinh trong lần sử dụng đầu tiên.
Với cách này, theo mình nghĩ nếu copy cái .XLA đó sang máy khác chạy ngon ơ ngay.tedaynui đã viết:2/ Để chỉ nhập PWord 1 lần, mình nghĩ bạn có thể thức hiện bằng cách : khi nhập PWord lần đầu thì giá trị PWord được cập nhật vào 1 ô nào đó của file .XLA và mỗi lần mở file thì chương trình kiểm tra thấy khớp PWord thì không hiện đòi PWord nữa. (diễn đạt hơi khó hiểu)
TDN
Function doc_ma_dia()
Dim ObjetoWMI As Object
Dim Disco As Object
Dim Discos As Object
Dim abc
Set ObjetoWMI = GetObject("WINMGMTS:")
Set Discos = ObjetoWMI.InstancesOf("Win32_PhysicalMedia")
abc = ""
For Each Disco In Discos
abc = Disco.SerialNumber
If Len(Trim(abc)) > 0 Then
Exit For
End If
Next
doc_ma_dia = Trim(abc)
End Function
Tuyệt vời, Cám ơn Chibi rất nhiều ! Cái này sẽ rất có ích đây.chibi đã viết:Gửi các bạn hàm đọc serial của HDD, xin ý kiến các bạn.
Chào bạnSao không ai trả lời em hết vậy?
Gửi các bạn hàm đọc serial của HDD, xin ý kiến các bạn.
Ông thử xem File này có đúng ý ông hong nha.Chibi ơi,
Nếu mà PC có nhiều hơn 1 HDD, thì serial này là của HDD nào? hông lẽ tháo ra và "thử và sai" ? Nếu không thì mình cho nó tìm hết các HDD luôn được không ?
Thanks,
vumian
Gửi các bạn hàm đọc serial của HDD, xin ý kiến các bạn.
Function doc_ma_dia()
Dim ObjetoWMI As Object
Dim Disco As Object
Dim Discos As Object
Dim abc
Set ObjetoWMI = GetObject("WINMGMTS:")
Set Discos = ObjetoWMI.InstancesOf("Win32_PhysicalMedia")
abc = ""
For Each Disco In Discos
abc = Disco.SerialNumber
If Len(Trim(abc)) > 0 Then
Exit For
End If
Next
doc_ma_dia = Trim(abc)
End Function
Đã kiểm tra, format ổ không ảnh hưởng đến kết quả hàm trên.
Tôi dùng hàm trên đọc được tên CPU rất nhiều máy (thường cả 1 dãy số và chữ), tuy nhiên có 1 máy cho giá trị là số 0. Không hiểu sao?
P/S: Cái hàm trên của Hướng viết tệ quá xá! Function mà ko có kiểu giá trị, các hàm liên quan tới String mà ko dùng $ là ko optimized code, tên biến thì ko rõ nghĩa, tiếng anh - việt thì loạn cào cào, create object xong mà ko Kill Object, v.v...--> 0 điểm!
Tất cả những vấn đề trên, chỉ cần Google là ra hết (Ex: Computer unique ID + Visual Basic, HDD Serial, MAC Address, etc...)
(code bằng APIs chứ đừng dùng ObjetoWMI)
Thì bạn phải không cho xoá code đó đi.minh viết code trong ex rồi dung vba kiem tra seri cua hdd roi tao ra 1 file lưu vào 1 nơi bất kỳ, mỗi máy chỉ dung trên máy đo, nếu muốn dùng máy khác thì phai copy fiel vba đo để tạo ra 1 file chứa seri cua hdd, nhung van không dam bao vi nêu vao file ex xoa code đo thi như không, ai co cách ji hay khong chi cho mi nguoi với
Cái này không hiểu có bị thay đổi khi format ổ không? Có bác nào đã thử kiểm tra lại chưa?
Còn lỗi ở một số máy cho ra serial HDD = 0, có nhiều máy cho ra số 0 lắm, điều này là do serial của các HDD bị trùng nhau hay sao? cung chưa hiểu tại sao?Trước kia mình nhầm là HDD Serial Number bị thay đổi. Nhưng giờ xin đính chính lại là HDD SN có 2 loại. 1 loại là Volume serial number và 1 loại là Manufacturer serial number. Loại thứ nhất thì bị thay đổi khi format/FDisk ổ cứng, loại thứ 2 thì ko.
Còn lỗi ở một số máy cho ra serial HDD = 0, có nhiều máy cho ra số 0 lắm, điều này là do serial của các HDD bị trùng nhau hay sao? cung chưa hiểu tại sao?
Anh hai2hai có thể cho mã nguồn để lấy Manufacturer serial number
Tôi thấy nhiều đơn vị cung cấp phần mềm qua mạng, họ gửi cho mình 1 chương trình, và yêu cầu mình chạy chương trình đó trên máy sẽ cài đặt rôi báo cho họ nội dung của thông báo gì đó trên màn hình. Chắc chương trình này sẽ đọc mã "thầm lặng" nào đó của máy tính.
Sau đó họ gửi bộ cài đặt đến. Nếu cố tình cài trên máy khác là không được.
Từ đó suy ra: trước khi gửi bộ cài đặt, họ sẽ lưu mã "thầm lặng" trong 1 biến của phần mềm đó và kiểm tra khi cài đặt. Như vậy, nêu làm trên Excel, ta không cần phải ghi vào 1 ô của file xla.
Chỉ có điều: nếu người ta xem được mã nguồn thì vô hiệu hóa các lệnh kiểm tra mã "thầm lặng" là xong.
Có 1 vài suy nghĩ xin chia sẻ. Cảm ơn
Ghi chú cho các bạn muốn bảo mật file: dù có bảo mất đến đâu đi nữa, người ta chỉ cần Disable Macro là có thể mở file excel lên bình thường lúc đó mấy cái mã máy xem như ko tồn tại vậy, rồi người ta xóa mấy cái đoạn mã đó, thì file cũng trở lại bình thường thôi bạn ạ. Mình cũng có một thời gian tìm hiểu để bảo mật, nhưng cuoi cùng mình cũng chấp nhận một điều thực tế là chỉ bảo mật người ngay thôi.hihi
Đề tài này đã lâu, nhưng vẫn là mới với tôi. Xin hỏi pmhoang: Chọn Disable Macro là có thể mở file excel lên bình thường, nhưng nếu ta không cho xem mã nguồn thì làm sao xoá được?
Để không cho xem mã nguồn, trong cửa sổ VBA của Excel, kích chuột phải vô mục VBAProject, chọn VBAProject Properties (hiện hộp thoại), chọn Protection,
chọn Lock project for viewing; nhập mật khẩu.
Tự tôi không cho xem mã nguồn như trên và không có cách nào để xem mã nguồn mà không dùng mật khẩu
Anh pmhoang có biết cách xem mã nguồn không dùng mật khẩu thì chỉ giúp
Xin cảm ơn.