سؤال

it's possible? I need to get the full path of Adobe Reader including the executable name. I'm looking for on windows registries, the closer that I did was found the full path without executable name. Thanks in advance.

my code:

var adobe = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Adobe").OpenSubKey("Acrobat Reader");
var version = adobe.GetSubKeyNames().First();
var path = adobe.OpenSubKey(version).OpenSubKey("installer").GetValue("path");

Thanks in advance.

هل كانت مفيدة؟

المحلول

One of these should do it for you:

    var adobe = Registry.LocalMachine
                        .OpenSubKey("Software")
                        .OpenSubKey("Microsoft")
                        .OpenSubKey("Windows")
                        .OpenSubKey("CurrentVersion")
                        .OpenSubKey("App Paths")
                        .OpenSubKey("AcroRd32.exe");

    var path = adobe.GetValue("");

    var adobeOtherWay = Registry.LocalMachine
                                .OpenSubKey("Software")
                                .OpenSubKey("Classes")
                                .OpenSubKey("acrobat")
                                .OpenSubKey("shell")
                                .OpenSubKey("open")
                                .OpenSubKey("command");

    var pathOtherWay = adobeOtherWay.GetValue("");

Pick one and run with it ;)

نصائح أخرى

I found a problem with the "adobeOtherWay" solution. If Adobe Acrobat(not reader) is installed, then the path will point to Acrobat.exe and not the reader's exe.(I wanted to comment to above, but don't have enough reputation)

I'm using : HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe It gives me the full path and exe- name of the installed Acrobat Reader, just what you need.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top