Если оригинал читает реестр, а вы портируете функцию, чтение реестра выглядит для меня как совершенно правильное решение?
Кстати, у Delphi есть класс TRegistry из реестра реестра.pas. Вы можете использовать это для чтения и записи реестра. По умолчанию вы запрашиваете все права (чтение / запись ..) в Vista, это может быть проблемой, поэтому обязательно открывайте только для чтения, если вы планируете только чтение.
Ключевые значения:
KEY_READ
KEY_WRITE
KEY_EXECUTE
KEY_ALL_ACCESS
Это наборы, основанные на базовых значениях:
KEY_QUERY_VALUE
KEY_SET_VALUE
KEY_CREATE_SUB_KEY
KEY_ENUMERATE_SUB_KEYS
KEY_NOTIFY
KEY_CREATE_LINK
KEY_WOW64_32KEY
KEY_WOW64_64KEY
KEY_WOW64_RES