2012-06-08 2 views
0

Я использую Qt, и это имеет очень полезный QSettings класс, который позволяет легко получить доступ к реестру ОС Windows:Как получить программы «Открыть с» с их полными путями из реестра Windows с помощью C++?

QSettings s("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.html\\OpenWithList", QSettings::NativeFormat); 

s.value("a").toString() возвращается "chrome.exe".

Хром не находится в PATH моего компьютера. Запуск chrome.exe в терминале приводит к ошибке. Поэтому я не могу просто запустить его в своем приложении на C++.

Я также не могу получить значок для него, так как мне нужен полный путь.

Итак, как мне найти этот полный путь? (В случае Chrome это C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe)

+0

[AppPaths, скорее всего] (http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121 (v = vs.85) .aspx). –

ответ

1

Не связывайтесь с реестром напрямую - FindExecutable предназначен для получения именно того, что вы хотите/нуждаетесь.

+0

Эта функция возвращает только программу по умолчанию для расширения. Мне нужно получить список всех возможных программ, тот, который вы получаете при нажатии «открыть с» в проводнике Windows. – Alex

+0

@Alex: Вероятно, стоит упомянуть об этом в вопросе. –

+0

Название гласит: «Откройте программы с их полными путями», что означает, что мне нужно получить несколько программ – Alex

Смежные вопросы