1. Disk Serial ID
I can't search the old archives (what other kind of archives are there,
right?)... so somebody please help out a chap!
I need a function that will return a disk's serial id... in decimal format.
Thanks!
ck
2. Re: Disk Serial ID
--Boundary_(ID_7ZSB342vDFLfEh0Vp6IfaQ)
On Wed, 21 Mar 2001, CK Lester wrote:
> I need a function that will return a disk's serial id... in decimal format.
Attached is a routine to do that. I think I got it from Jacques D.
--
Regards,
Irv
--Boundary_(ID_7ZSB342vDFLfEh0Vp6IfaQ)
3. Re: Disk Serial ID
----- Original Message -----
From: "Irv Mullins" <irvm at ellijay.com>
To: "EUforum" <EUforum at topica.com>
Sent: Wednesday, March 21, 2001 3:05 PM
Subject: Re: Disk Serial ID
> On Wed, 21 Mar 2001, CK Lester wrote:
>
> > I need a function that will return a disk's serial id... in decimal
format.
>
> Attached is a routine to do that. I think I got it from Jacques D.
DRAT!
Thanks, Irv, but I forgot to specify that I need it for a Windows program...
<\<
4. Re: Disk Serial ID
Hi all,
Reading the forum often gives you great ideas. I tried the file supplied by
Brian and got the following error, any idea why. I saved the file a test.ex
C:\EUPHORIA\include\dll.e:27 in function open_dll()
open_dll() is not supported in Euphoria for DOS32
file_name = {107'k',101'e',114'r',110'n',101'e',108'l',51'3',50'2',
46'.',100'd',108'l',108'l'}
.. called from C:\PROGRA~2\TEMP\TEST2.EX:7
Global & Local Variables
C:\EUPHORIA\include\machine.e:
check_calls = 1
C:\EUPHORIA\include\get.e:
input_file = <no value>
input_string = <no value>
string_next = <no value>
ch = <no value>
Thanks
Tony
Come Visit Me At www.locksdownunder.com
----- Original Message -----
From: "Brian Broker" <bkb at cnw.com>
To: "EUforum" <EUforum at topica.com>
Sent: Thursday, March 22, 2001 9:33 AM
Subject: RE: Disk Serial ID
>
>
> CK Lester wrote:
> >
> > Thanks, Irv, but I forgot to specify that I need it for a Windows
> > program...
> >
>
> CK,
>
> This it something I posted to the old list. It does not require
> Win32Lib.
>
> -- start tested program --
> 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)
>
> function getVolSerial( sequence 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
>
> rootPathName = allocate_string( root_dir )
> volSerNum = allocate( 4 )
>
> if not c_func( xGetVolumeInfo, { rootPathName, NULL, NULL, volSerNum,
> NULL, NULL, NULL, NULL } ) then
> puts( 1, "xGetVolumeInfo failed in function getVolSerial" )
> end if
>
> ret_val = { peek4u( volSerNum ) }
> free( rootPathName )
> free( volSerNum )
>
> return ret_val
>
> end function
>
> sn = sprintf( "%08x", getVolSerial( "C:\\" ) )
> printf( 1, "Volume Serial Number is %s-%s", {sn[1..4],sn[5..8]} )
> -- this can be verified by typing "vol" at the C: prompt
> if wait_key() then end if
>
> -- end tested program --
>
> -- Brian
>
>
>
>