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...

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top