2. hard drive serial numbers
I've been using a contributed routine to read hard drive serial numbers. They
all have actually been numbers up to now. Apparently this dell laptop with
Vista is reporting a serial number which is a mixture of alpha and numbers.
Does anyone have any knowledge about this. Is this one computer dorked up
or is this generally the case?
3. Re: hard drive serial numbers
George Walters wrote:
>
> I've been using a contributed routine to read hard drive serial numbers. They
> all have actually been numbers up to now. Apparently this dell laptop with
> Vista is reporting a serial number which is a mixture of alpha and numbers.
>
> Does anyone have any knowledge about this. Is this one computer dorked up
> or is this generally the case?
Depends what you mean. 14E9-420A is just a 32-bit number expressed in hex,
and I got that from running dir in a dos prompt. If I done my maths right
((6/16)*8), 3 out of 4 serial nos have a letter A-F somewhere. If you've seen
lots of serial nos which are only 0..9, that is a bit spooky.
Pete
4. Re: hard drive serial numbers
Actually, Pete the user contriution which I'm using gets the serial number
and returns to me an atom. I'm getting a type mismatch when using it with
this computer. Hopefully there gonna send me the computer so I can investigate
the problem further.
5. Re: hard drive serial numbers
Is there a function (for example in Win32Lib) to fetch this serial no?
Kenneth / ZNorQ
6. Re: hard drive serial numbers
I don't know. I downloaded one from the archives. It's name is serialize.e
I can't remember who wrote it. I can email it to you if you can't find it.
7. Re: hard drive serial numbers
Here's what I use for a Win32 app:
--include dll.e
--include machine.e
--include get.e
constant
kernel32 = open_dll( "kernel32.dll" ),
xGetVolumeInfo = define_c_func( kernel32, "GetVolumeInformationA",
{C_POINTER, C_POINTER, C_UINT, C_POINTER, C_POINTER,
C_POINTER, C_POINTER, C_UINT }, C_INT)
global function get_drive(sequence s)
integer i
s = reverse( s )
i = match( "\\", s )
if i > 0 then
s = s[i..$]
end if
s = reverse( s )
return s
end function
global function getVolSerial( object root_dir )
-- Input: A string that contains the root directory of the volume to be
described.
-- A trailing backslash is required. For example, you would specify
-- \\MyServer\MyShare as "\\\\MyServer\\MyShare\\", or the C drive as
"C:\\".
-- Output: Volume Serial Number
atom rootPathName, volSerNum
sequence ret_val
if atom(root_dir) then
root_dir = root_dir & ":\\"
end if
rootPathName = allocate_string( root_dir )
volSerNum = allocate( 4 )
if not c_func( xGetVolumeInfo, { rootPathName, NULL, NULL, volSerNum,
NULL, NULL, NULL, NULL } ) then
--puts( 1, "\n**xGetVolumeInfo failed in function getVolSerial**\n" )
--puts(1, root_dir)
end if
ret_val = { peek4u( volSerNum ) }
free( rootPathName )
free( volSerNum )
return ret_val
end function
8. Re: hard drive serial numbers
That's the one. Has worked fine for me.