é relativamente fácil definir a associação de arquivos exe
no Windows (uma ótima maneira de se bloquear, aliás). Isso normalmente é feito em HKEY_CLASSES_ROOT, que é válido para todos os usuários. Mas existe uma maneira de alterar essa associação apenas para um único usuário?
Quero executar alguma ação sempre antes de algum programa ser iniciado por este usuário. O iniciador deve então chamar o programa. Porém, CreateProcess
não funciona se a elevação for necessária, enquanto ShellExecute
executará o inicializador recursivamente... - então a ideia era executar o programa de um usuário diferente que não tenha definido a associação de arquivo para o arquivo exe.
Existe uma maneira de conseguir isso?
Responder1
Sim.
HKCR é um amálgama de HKLM\Software\Classes
e HKCU\Software\Classes
.
Você pode simplesmente criar HKCU\Software\Classes\.exe
e alterar a associação de arquivo apenas para o usuário atual.