Ваш вызов Registry.LocalMachine.OpenSubKey или GetValue может завершиться неудачно, а затем он возвращает значение NULL. Затем, когда они используются, вы получите исключение нулевой ссылки.
Попытайтесь проверить, являются ли какие-либо значения, возвращаемые этими методами, нулевыми. Примерно так:
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\ComodoGroup\CDI\1");
if (key != null)
{
object = installProductPath = key.GetValue("InstallProductPath");
// You could also supply a default value like this:
// installProductPath = key.GetValue("InstallProductPath", @"C:\The\Default\Path");
if (installProductPath != null)
{
System.Diagnostics.Process.Start(Path.Combine(installProductPath.ToString() + "cfp.exe");
}
}
Редактировать
Полагаю, вы просто написали эту строку неправильно, но вы указываете не значение, а значение RegistryKey:
System.Diagnostics.Process.Start(Copen + "cfp.exe");