Domanda

Sto cercando un punto di partenza accettabile per l'immissione impostazioni delle applicazioni in una macchina Windows. Ho più di un'applicazione. per motivi personali, non vorrei utilizzare il Registro di sistema: preferisco file di inizializzazione testo (ini). Anche io non mi sento come tenere i file nella stessa directory dei file eseguibili, la situazione ideale mi permette di tenerli da qualche parte generica in cui gli utenti o gli amministratori di sistema sono autorizzati a scrivere.

a destra, io non sono un utente di Windows, la mia prima risposta sarebbe $HOME/.my_company_name e /etc/my_company_name, ma c'è qualcosa di concettualmente equivalenti a questi luoghi in Windows?

solo guardando in uscita SET e indovinare:

%APPDATA%
%HOMEDRIVE%%HOMEPATH%\Local Settings
%SYSTEMROOT%

A proposito: devo ancora verificare se esistono ancora queste variabili all'interno di un servizio di Windows ...

È stato utile?

Soluzione

Credo AppData è ciò che si desidera.

È possibile utilizzare SHGetFolderPath (da Shfolder.dll) per ottenere questo livello di programmazione.

MSDN 'dei dati e delle impostazioni di gestione' (vedi sezione 4.2 'dati Classificare e Application Store correttamente'):

TCHAR szAppData[MAX_PATH];
…
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);

Accoda [company name]\[product name]\[version] a szAppData utilizzando PathAppend :

PathAppend(szAppData, "Company\Product\1.0\File.ini")

Ci sono anche CSIDL_COMMON_APPDATA per i non-utenti specifici dati e CSIDL_LOCAL_APPDATA per i dati non in roaming (dati che non devono essere copiati in tutta la rete quando utente accede ad una macchina diversa).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top