относительно легко установить файловую ассоциацию для exe
файлов в Windows (хороший способ заблокировать себя, кстати). Обычно это делается в HKEY_CLASSES_ROOT, который действителен для всех пользователей. Но есть ли способ изменить эту ассоциацию только для одного пользователя?
Я хочу выполнять какое-то действие каждый раз перед запуском какой-то программы этим пользователем. Затем лаунчер должен вызвать программу. Однако, CreateProcess
не работает, если требуется повышение прав, в то время как ShellExecute
лаунчер будет запускаться рекурсивно... - поэтому идея была в том, чтобы запустить программу от другого пользователя, который не установил ассоциацию файла для exe-файла.
Есть ли способ этого добиться?
решение1
Да.
HKCR представляет собой объединение HKLM\Software\Classes
и HKCU\Software\Classes
.
Вы можете просто создать HKCU\Software\Classes\.exe
и изменить ассоциацию файлов только для текущего пользователя.