onde colocar os arquivos de inicialização no Windows
-
12-09-2019 - |
Pergunta
Estou procurando um ponto de partida aceitável para colocar configurações de aplicativos em uma máquina Windows.Tenho mais de um aplicativo.por motivos pessoais, não gostaria de usar o registro:Prefiro arquivos de inicialização de texto simples (.ini).Também não tenho vontade de manter os arquivos no mesmo diretório dos executáveis; a situação ideal me permite mantê-los em algum lugar genérico onde usuários ou administradores de sistema possam escrever.
certo, não sou usuário do Windows, meu primeiro palpite seria $HOME/.my_company_name
e /etc/my_company_name
, mas existe algo conceitualmente equivalente a esses locais no Windows?
apenas olhando para dentro SET
saída e adivinhação:
%APPDATA% %HOMEDRIVE%%HOMEPATH%\Local Settings %SYSTEMROOT%
por falar nisso:Ainda preciso verificar se essas variáveis ainda existem em um serviço do Windows...
Solução
Acho que AppData é o que você deseja.
Você pode usar SHGetFolderPath (de SHFOLDER.DLL) para obter isso programaticamente.
De MSDN 'Gerenciamento de dados e configurações' (consulte a seção 4.2 'Classificar e armazenar dados de aplicativos corretamente'):
TCHAR szAppData[MAX_PATH];
…
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);
Acrescentar [company name]\[product name]\[version]
para szAppData usando PathAppend:
PathAppend(szAppData, "Company\Product\1.0\File.ini")
Há também CSIDL_COMMON_APPDATA
para dados não específicos do usuário e CSIDL_LOCAL_APPDATA
para dados que não sejam de roaming (dados que não devem ser copiados pela rede quando o usuário faz logon em uma máquina diferente).