thanks folks!
CW2 - sorry, I should have said, it gives back 8 bytes which is 2 4-byte values. The second set of 4 bytes there is a second serial number.
So, your way works perfectly .
I understand what you're doing but not why. I last did this stuff in school some 20 years ago and binary has changed so much since then (TiC!)
I'll write it all down and understand it. Thanks for the help.
Lazy question - is there a lazy-man's wrapper in csharp which could have done this for me?
Cheers,
Crispin