Moin Duffy,
ja, ich hab' 'ne Idee:
Du musst mit WriteExpandString schreiben, nicht mit WriteString, da der Wert Path vom Typ REG_EXPAND_SZ ist.
Wenn der Typ nicht stimmt (beim Schreiben mit WriteString wird daraus REG_SZ), kann Windows den Wert nicht auslesen, und erhält einen Leerstring zurück.
[EDIT]
Man muss grundsätzlich darauf achten, dass der Typ stimmt, nicht nur hier. Ansonsten kann das zu interessanten Effekten führen
[/EDIT]