I was using OpenVPNPortable form http://openvpn.se/.
However, that bundle with an older version of OpenVPN.
And I want to update OpenVPN(with the GUI) to the latest version.
However, that NSIS-built OpenVPNPortable.exe runs the executable like the following command:
openvpn.exe --exe_path ... --config_dir ...
(which doesn't require installed openvpn from registry)
But the openvpn-gui.exe then says "Cannot read registry, maybe not installed OpenVPN".
After checking the difference(openvpn.se is really similar to here) of main.c and registry.c between openvpn.se and openvpn-gui.sf.net, I guess it's because of the if section on line 47 of openvpn.se version.
In main.c:
line 158 reads command line options into memory(variable o),
but (at line 168) reads registry again(and stop working) without the use of variable o.
Please, remove unnecessary registry requirements.