Название: Получение пути по имени файла. Отправлено: cefire от Май 22, 2013, 20:34 Я хочу получить список программ для функции "открыть с помощью".
Для этого я получаю 2 списка программ по ассоциациям. Далее для каждого списка использую соответственно следующие функции: Код: QSettings sett("HKEY_CLASSES_ROOT\\"+progids[i]+"\\shell\\open\\command",QSettings::NativeFormat); Код: QSettings sett("HKEY_CLASSES_ROOT\\Applications\\"+programs[i]+"\\shell\\open\\command",QSettings::NativeFormat); Результат помещаю в новый список. Пример списка для BMP: Цитировать "C:\Program Files\Adobe\Adobe Illustrator CS6\Support Files\Contents\Windows\Illustrator.exe" "%1" "C:\Program Files\Adobe\Adobe Photoshop CS5\Photoshop.exe" "%1" "C:\Program Files\Adobe\Adobe Photoshop CS6\Photoshop.exe" "%1" "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" /dde "C:\Program Files\Opera\Opera.exe" "%1" "%systemroot%\system32\mspaint.exe" "%1" C:\PROGRA~1\MIF5BA~1\Office14\OIS.EXE /shellOpen "%1" %SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1 Теперь мне это нужно преобразовать в следующее: Цитировать C:\Program Files\Adobe\Adobe Illustrator CS6\Support Files\Contents\Windows\Illustrator.exe C:\Program Files\Adobe\Adobe Photoshop CS5\Photoshop.exe C:\Program Files\Adobe\Adobe Photoshop CS6\Photoshop.exe C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe C:\Program Files\Opera\Opera.exe %systemroot%\system32\mspaint.exe C:\PROGRA~1\MIF5BA~1\Office14\OIS.EXE %SystemRoot%\System32\rundll32.exe Конечно можно обрезать в строке первый символ, если он кавычка, и до .exe Но можно ли как-нибудь по-другому, например пропарсить чем-нибудь коммандную строку? Дополнительно: Можно ли для Цитировать %SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1 получить иконку и описание из PhotoViewer.dllНазвание: Re: Получение пути по имени файла. Отправлено: kambala от Май 22, 2013, 20:51 в данном случае лучше кавычки искать ручками и проверять на первый символ
Название: Re: Получение пути по имени файла. Отправлено: cefire от Май 22, 2013, 20:55 1) Данные берутся динамически с реестра.
2) Просто кавычки смотреть - не работает. Выше есть пример Цитировать C:\PROGRA~1\MIF5BA~1\Office14\OIS.EXE /shellOpen "%1" Название: Re: Получение пути по имени файла. Отправлено: kambala от Май 22, 2013, 21:08 и проверять на первый символ не просто ж так я это написал. если первый символ — не кавычка, тогда ищется пробел.Название: Re: Получение пути по имени файла. Отправлено: cefire от Май 22, 2013, 22:12 Спасибо.
|