Сейчас на форуме: jinoweb (+6 невидимых) |
eXeL@B —› Программирование —› Зарегистрирован ли в системе протокол |
Посл.ответ | Сообщение |
|
Создано: 18 сентября 2018 15:25 · Поправил: Isaev · Личное сообщение · #1 Допустим, если в Windows зарегистрирован какой-либо протокол, мы можем работать через него, например, вызвав через ShelExecute(Handle, 'open', 'myprot://hallo', nil, nil, ... Если он не зарегистирован, то эта API не возвращает кода ошибки Есть ли WinAPI чтобы проверить зарегистрирован ли он? Можно тупо проверить существование ключа в реестре HKEY_CLASSES_ROOT/myprot, но если есть стандартные средства, зачем изобретать колесо... ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 18 сентября 2018 15:43 · Поправил: f13nd · Личное сообщение · #2 Для ассоциаций файлов есть утилита assoc, для url associations похоже нету. А ключ в реестре вроде бы HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations Возможно где-то в wmi оно и зарыто, но это будет все равно не проще, не быстрей и не надежней, чем проверить пару ключей в реестре. Ну и как экзотическое решение - вместо ShellExecute использовать CreateProcess с cmd.exe со своими stdout и stderr, с которых пропарсить результат ----- 2 оттенка серого |
|
Создано: 18 сентября 2018 16:29 · Личное сообщение · #3 |
|
Создано: 18 сентября 2018 16:29 · Личное сообщение · #4 |
|
Создано: 18 сентября 2018 16:38 · Личное сообщение · #5 VOLKOFF пишет: Чего тут экзотического? ShellExecute это обертка для CreateProcess В смысле экзотика stdout анализировать, чтоб проверить отработало или нет. Isaev пишет: ну как бы надёжнее использовать родное, наверное... А это и есть родное Там вскользь упоминается интерфейс IApplicationAssociationRegistration: Exposes methods that query and set default applications for specific file Association Type, and protocols at a specific Association Level. Как бы вот, но есть проблема: Minimum supported client Windows Vista [desktop apps only] Minimum supported server Windows Server 2008 [desktop apps only] ----- 2 оттенка серого | Сообщение посчитали полезным: Isaev |
|
Создано: 20 сентября 2018 17:07 · Личное сообщение · #6 |
eXeL@B —› Программирование —› Зарегистрирован ли в системе протокол |