Jika nomor seri yang dimaksud adalah volume serial number, maka bisa
menggunakan :
Hex(
CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber)
hasilnya adalah sebuah string susunan bilangan hexadecimal volume serial
number drive (bukan serial number hardware harddisk)
Hasil tersebut bisa disimpan dimana saja yang memungkinkan.
Misal dalam sebuah variabel string seperti :
dim sSerial as string
sSerial=Hex(
CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber)
Jika akan dibandingkan dengan suatu nilai, bisa diletakkan dalam suatu
proses kondisi seperti :
IF sSerial = "ABCD1235" then
msgbox "Seri drive C: Anda sesuai dan boleh mengakses data"
else
msgbox "Seri drive C: Anda tidak mendapat hak akses terhadap data
dalam file ini"
thisworkbook.close false
endif
Harddisk Volume Serial Number akan berubah ketika drive tersebut diformat.
Andai akan mengambil serial number hardware harddisk, bisa menggunakan wmi
class seperti berikut :
Dim objWMIService As Object, colDisks As Object, objLoop As Object
Set objWMIService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * from
Win32_PhysicalMedia")
For Each objLoop In colDisks
If InStr(objLoop.Tag & "|", "*PHYSICALDRIVE0*|") <> 0 Then
*Debug.Print objLoop.Tag & " | " & Trim$(objLoop.serialnumber)*
End If
Next objLoop
Bagian yang *merah *adalah harddisk yang akan diambil serial numbernya,
yaitu harddisk pertama yang terpasang
Bagian yang *biru *adalah contoh cara mengambil nilai properti yang
tersedia.
Bagian *Trim$(objLoop.serialnumber)* adalah untuk mendapatkan teks serial
number hardware harddisk
Untuk mengambil data serial number harddisk pertama yang terpasang pada
contoh di atas, bagian yang biru seluruhnya diganti menjadi :
msgbox *Trim$(objLoop.serialnumber)*
Jika akan disimpan ke sebuah variabel :
Dim objWMIService As Object, colDisks As Object, objLoop As Object,
sSerial as string
Set objWMIService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * from
Win32_PhysicalMedia")
For Each objLoop In colDisks
If InStr(objLoop.Tag & "|", "*PHYSICALDRIVE0*|") <> 0 Then
*sserial=Trim$(objLoop.serialnumber)*
End If
Next objLoop
Jika dalam komputer tersebut banyak terpasang harddisk maupun cdrom atau
tape disk, beri Exit For setelah baris *sserial=Trim$(objLoop.serialnumber)*
saat sebelum baris EndIF.
Serial number hardware akan berubah jika hardware diganti dengan hardware
harddisk lainnya.
Wassalam,
Kid.
2013/1/29 PRAZT <[email protected]>
> **
>
>
> Dear all master...
> Saya ingin mendapatkan nomor hardisk yang ingin saya letakkan pada sheet1,
> cell A1, setiap kali file excel dibuka pada hardisk yang berbeda maka
> otomatis pada sheet1, cell A1 juga otomatis berubah sesuai hardisk yang di
> pakai..****
>
> Saya mendapatkan code CBAnya dari milis tetangga seperti di bawah :****
>
> MsgBox
> CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber***
> *
>
> Berhubung saya masih tabu dengan VBA maka saya ingin minta bantuan pada
> para master bagaimana cara penggunaan code tersebut?****
>
> Atau mungkin ada contoh lain yang bisa membantu saya.****
>
> ** **
>
>
>
> PRAZTMATH ™****
>
> ** **
>
>
>
<<image001.jpg>>

