Home |
Search |
Today's Posts |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi David,
With CreateObject("WScript.Network") MsgBox "Domain = " & .UserDomain & vbLf _ & "Computer Name = " & .ComputerName & vbLf _ & "User Name = " & .UserName End With MP "David Hall" a écrit dans le message de ... Hi A bit of a challenging problem here as a previously provided solution (that seemed excellent to me) doesn't quite provide the right answer. I would like to setup a macro within Excel that checks which computer is using a particular Excel Doc. Is there a command that gets the computer's "Hard Disc Serial Number" or any other unique reference number that identifies the particular computer ? An earlier posting provided the following codes - which unfortunately give the same answer on different computers that have the same manufacturer and are the same model: One way: Get the serial number of your harddisk. Find below two solutions: 1. Using the Windows Scripting Host (a repost from Bob Phillips): Function DiskVolumeId() As String Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") DiskVolumeId = Format(CDbl(FSO.Drives("C:").SerialNumber)) End Function 2. Or using API calls (if for example WSH is not available): Declare Function GetVolumeInformation Lib "kernel32" Alias _ "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _ lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _ lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _ ByVal nFileSystemNameSize As Long) As Long Function get_drive_serial() Const cMaxPath = 256, cDrive = "C:\" Dim lngtemp Dim strTemp As String, lngRet As Long Dim lngVolSerial As Long, strVolName As String * cMaxPath Dim lngMaxCompLen As Long, lngFileSysFlags As Long Dim strFileSysName As String * cMaxPath lngRet = GetVolumeInformation(cDrive, strVolName, cMaxPath, _ lngTemp, lngMaxCompLen, lngFileSysFlags, strFileSysName, _ cMaxPath) strTemp = Format(Hex(lngTemp), "00000000") strTemp = Left(strTemp, 4) & "-" & Right(strTemp, 4) get_drive_serial = strTemp End Sub I use Excel 2003, and I am trying to find a way of limiting the use of a particular Excel Doc to certain users. Many thanks for your input and comments David Hall |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Formulaed cell response varies from computer to computer | Excel Discussion (Misc queries) | |||
Excel column identification | Setting up and Configuration of Excel | |||
How do I copy all Excel files from old computer to new computer? | Excel Discussion (Misc queries) | |||
Excel version identification from Visual Basic | Excel Discussion (Misc queries) | |||
Computer identification using Excel VB | Excel Programming |