Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Computer identification using Excel VB

Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Computer identification using Excel VB

David,

A couple of ways

Using FSO

Function DiskVolumeId() As String
Dim FSO As Object

Set FSO = CreateObject("Scripting.FileSystemObject")
DiskVolumeId = Format(CDbl(FSO.Drives("C:").SerialNumber))
End Function


Using API

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 DriveiD(Drive As String)
Const cMaxPath As Long = 256
Dim nTemp
Dim sTemp As String
Dim nRet As Long
Dim nVolSerial As Long
Dim sVolName As String * cMaxPath
Dim nMaxCompLen As Long
Dim nFileSysFlags As Long
Dim sFileSysName As String * cMaxPath

If Right(Drive, 1) < "\" Then Drive = Drive & "\"
nRet = GetVolumeInformation(Drive, sVolName, cMaxPath, _
nTemp, nMaxCompLen, nFileSysFlags, _
sFileSysName, cMaxPath)
sTemp = Format(Hex(nTemp), "00000000")
sTemp = Left(sTemp, 4) & "-" & Right(sTemp, 4)

DriveiD = sTemp
End Function

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Dvid Hall" wrote in message
...
Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,885
Default Computer identification using Excel VB

Hi
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



--
Regards
Frank Kabel
Frankfurt, Germany


Dvid Hall wrote:
Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 214
Default Computer identification using Excel VB

Hi David,
MsgBox
Hex(CreateObject("Scripting.FileSystemObject").Dri ves.Item("C").SerialNumber
)
MP

"Dvid Hall" a écrit dans le message de
...
Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,885
Default Computer identification using Excel VB

Hi Bob
lol
seems we have both the same library :-)
AND are posting at the same time!



--
Regards
Frank Kabel
Frankfurt, Germany


Bob Phillips wrote:
David,

A couple of ways

Using FSO

Function DiskVolumeId() As String
Dim FSO As Object

Set FSO = CreateObject("Scripting.FileSystemObject")
DiskVolumeId = Format(CDbl(FSO.Drives("C:").SerialNumber))
End Function


Using API

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 DriveiD(Drive As String)
Const cMaxPath As Long = 256
Dim nTemp
Dim sTemp As String
Dim nRet As Long
Dim nVolSerial As Long
Dim sVolName As String * cMaxPath
Dim nMaxCompLen As Long
Dim nFileSysFlags As Long
Dim sFileSysName As String * cMaxPath

If Right(Drive, 1) < "\" Then Drive = Drive & "\"
nRet = GetVolumeInformation(Drive, sVolName, cMaxPath, _
nTemp, nMaxCompLen, nFileSysFlags, _
sFileSysName, cMaxPath)
sTemp = Format(Hex(nTemp), "00000000")
sTemp = Left(sTemp, 4) & "-" & Right(sTemp, 4)

DriveiD = sTemp
End Function


"Dvid Hall" wrote in message
...
Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Computer identification using Excel VB

Yeah, I swear you are reading my mind at times.

Bob

"Frank Kabel" wrote in message
...
Hi Bob
lol
seems we have both the same library :-)
AND are posting at the same time!



--
Regards
Frank Kabel
Frankfurt, Germany


Bob Phillips wrote:
David,

A couple of ways

Using FSO

Function DiskVolumeId() As String
Dim FSO As Object

Set FSO = CreateObject("Scripting.FileSystemObject")
DiskVolumeId = Format(CDbl(FSO.Drives("C:").SerialNumber))
End Function


Using API

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 DriveiD(Drive As String)
Const cMaxPath As Long = 256
Dim nTemp
Dim sTemp As String
Dim nRet As Long
Dim nVolSerial As Long
Dim sVolName As String * cMaxPath
Dim nMaxCompLen As Long
Dim nFileSysFlags As Long
Dim sFileSysName As String * cMaxPath

If Right(Drive, 1) < "\" Then Drive = Drive & "\"
nRet = GetVolumeInformation(Drive, sVolName, cMaxPath, _
nTemp, nMaxCompLen, nFileSysFlags, _
sFileSysName, cMaxPath)
sTemp = Format(Hex(nTemp), "00000000")
sTemp = Left(sTemp, 4) & "-" & Right(sTemp, 4)

DriveiD = sTemp
End Function


"Dvid Hall" wrote in message
...
Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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



  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,885
Default Computer identification using Excel VB

rotflol

--
Regards
Frank Kabel
Frankfurt, Germany


Bob Phillips wrote:
Yeah, I swear you are reading my mind at times.

Bob

"Frank Kabel" wrote in message
...
Hi Bob
lol
seems we have both the same library :-)
AND are posting at the same time!



--
Regards
Frank Kabel
Frankfurt, Germany


Bob Phillips wrote:
David,

A couple of ways

Using FSO

Function DiskVolumeId() As String
Dim FSO As Object

Set FSO = CreateObject("Scripting.FileSystemObject")
DiskVolumeId = Format(CDbl(FSO.Drives("C:").SerialNumber))
End Function


Using API

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 DriveiD(Drive As String)
Const cMaxPath As Long = 256
Dim nTemp
Dim sTemp As String
Dim nRet As Long
Dim nVolSerial As Long
Dim sVolName As String * cMaxPath
Dim nMaxCompLen As Long
Dim nFileSysFlags As Long
Dim sFileSysName As String * cMaxPath

If Right(Drive, 1) < "\" Then Drive = Drive & "\"
nRet = GetVolumeInformation(Drive, sVolName, cMaxPath, _
nTemp, nMaxCompLen, nFileSysFlags,

_
sFileSysName, cMaxPath)
sTemp = Format(Hex(nTemp), "00000000")
sTemp = Left(sTemp, 4) & "-" & Right(sTemp, 4)

DriveiD = sTemp
End Function


"Dvid Hall" wrote in message
...
Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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


  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default Computer identification using Excel VB

Bob and Frank

Many thanks, a great help
David
-----Original Message-----
Yeah, I swear you are reading my mind at times.

Bob

"Frank Kabel" wrote in message
...
Hi Bob
lol
seems we have both the same library :-)
AND are posting at the same time!



--
Regards
Frank Kabel
Frankfurt, Germany


Bob Phillips wrote:
David,

A couple of ways

Using FSO

Function DiskVolumeId() As String
Dim FSO As Object

Set FSO = CreateObject

("Scripting.FileSystemObject")
DiskVolumeId = Format(CDbl(FSO.Drives

("C:").SerialNumber))
End Function


Using API

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 DriveiD(Drive As String)
Const cMaxPath As Long = 256
Dim nTemp
Dim sTemp As String
Dim nRet As Long
Dim nVolSerial As Long
Dim sVolName As String * cMaxPath
Dim nMaxCompLen As Long
Dim nFileSysFlags As Long
Dim sFileSysName As String * cMaxPath

If Right(Drive, 1) < "\" Then Drive = Drive & "\"
nRet = GetVolumeInformation(Drive, sVolName,

cMaxPath, _
nTemp, nMaxCompLen,

nFileSysFlags, _
sFileSysName,

cMaxPath)
sTemp = Format(Hex(nTemp), "00000000")
sTemp = Left(sTemp, 4) & "-" & Right(sTemp, 4)

DriveiD = sTemp
End Function


"Dvid Hall" wrote in

message
...
Hi

I would like to setup a macro within Excel that

checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command:

Application.UserName and
the more complex VB codes to recall the NT network

name
and computer name.
However these could be changed relatively easily for

stand
alone computers.

Is there a command that gets the computer's "Hard

Disc
Serial Number" or any other unique reference number

that
identifies the particular computer ?

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



.

  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,885
Default Computer identification using Excel VB

Hi
thanks for your feedback :-)

--
Regards
Frank Kabel
Frankfurt, Germany


David Hall wrote:
Bob and Frank

Many thanks, a great help
David
-----Original Message-----
Yeah, I swear you are reading my mind at times.

Bob

"Frank Kabel" wrote in message
...
Hi Bob
lol
seems we have both the same library :-)
AND are posting at the same time!



--
Regards
Frank Kabel
Frankfurt, Germany


Bob Phillips wrote:
David,

A couple of ways

Using FSO

Function DiskVolumeId() As String
Dim FSO As Object

Set FSO = CreateObject ("Scripting.FileSystemObject")
DiskVolumeId = Format(CDbl(FSO.Drives ("C:").SerialNumber))
End Function


Using API

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 DriveiD(Drive As String)
Const cMaxPath As Long = 256
Dim nTemp
Dim sTemp As String
Dim nRet As Long
Dim nVolSerial As Long
Dim sVolName As String * cMaxPath
Dim nMaxCompLen As Long
Dim nFileSysFlags As Long
Dim sFileSysName As String * cMaxPath

If Right(Drive, 1) < "\" Then Drive = Drive & "\"
nRet = GetVolumeInformation(Drive, sVolName, cMaxPath, _
nTemp, nMaxCompLen, nFileSysFlags,
_ sFileSysName, cMaxPath)
sTemp = Format(Hex(nTemp), "00000000")
sTemp = Left(sTemp, 4) & "-" & Right(sTemp, 4)

DriveiD = sTemp
End Function


"Dvid Hall" wrote in message
...
Hi

I would like to setup a macro within Excel that checks
which computer is using a particular Excel Doc.

I know of the Excel VBA command: Application.UserName and
the more complex VB codes to recall the NT network name
and computer name.
However these could be changed relatively easily for stand
alone computers.

Is there a command that gets the computer's "Hard Disc
Serial Number" or any other unique reference number that
identifies the particular computer ?

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



.


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Formulaed cell response varies from computer to computer WKH Excel Discussion (Misc queries) 3 November 21st 07 06:37 PM
Excel column identification EngineerOldie Setting up and Configuration of Excel 2 March 15th 06 08:26 PM
How do I copy all Excel files from old computer to new computer? Rfarsh Excel Discussion (Misc queries) 2 December 20th 05 03:23 AM
Excel version identification from Visual Basic Raja Ranga Excel Discussion (Misc queries) 6 January 17th 05 08:48 PM
Autocomplete works with my home computer but not the office computer Andy Excel Discussion (Misc queries) 4 December 11th 04 07:21 PM


All times are GMT +1. The time now is 01:44 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"