Un comentario mas...
Al utilizar "ShareMem" también es necesario incluir la librería "borlndmm.dll" en la carpeta del ejecutable, a no ser que el PC tenga instalado Delphi, en cuyo caso no es necesario, ya que esta librería está incluida en la carpeta "Bin", y está registrada en Windows.
¿No seria mas fácil incluir la función que devuelve el número de serie del HD en un dcu...? (tan solo es una reflexión).
Salu2.