Wobei da
komplett die Fehlerbehandlung fehlt...
Du hast das try..finally vergessen, außerdem wirfst du den Rückgabewert von OpenKey weg statt zu prüfen, ob der Schlüssel geöffnet werden konnte. Und das kann ins Auge gehen, es sei denn deine Anwendung fordert beim Start bereits sowieso immer Adminrechte an (was ja auch wieder schlecht wäre). Andernfalls hat die Anwendung ja gar nicht immer die notwendigen Rechte...
Und da du dann nicht einmal den Rückgabewert von OpenKey prüfst

, bekommst du ohne Adminrechte eine schöne Exception und hast, da du nicht einmal try..finally benutzt, ein schönes Speicherleck... von der unschönen Fehlermeldung durch die Exception im Programm ganz abgesehen...
Besser wäre zu schauen, ob du Adminrechte hast und andernfalls die Anwendung mit ShellExecute und
'runas' als Verb zu starten (mit Parametern, an denen du erkennst was passieren soll), damit es nicht nur bei wenigen zufällig funktioniert...