The following code sample used to return me windows id before, but now it doesn\'t work, and returns empty string, dunno why.
function GetWindowsID: string
I believe it's because
str := Registry.ReadString('ProductId');
does not raise an exception when there is no ProductId. In my honest opinion, this is a bug in Delphi.
ProductId