|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
[C#] Programma multiutente
vorrei realizzare in C# un programma .NET che preveda la possibilità della multiutenza. in sostenza questo programma tra le altre cose dovrebbe memorizzare dei files, ma tali files devono essere unici per ogni utente, non su tutto il sistema: lo stesso programma avviato da un altro utente deve leggere files di impostazioni diversi.
in Win32 c'è ad esempio l'API SHGetKnownFolderPath col parametro FOLDERID_LocalAppData, in .NET invece avete idea di come posso fare? |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Quote:
Se è così allora ciò di cui hai bisogno sono: Codice:
ApplicationData -> "C:\Documents and Settings\<utentecorrente>\Dati applicazioni\" Codice:
LocalApplicationData -> "C:\Documents and Settings\<utentecorrente>\Impostazioni locali\Dati applicazioni\" Codice:
CommonApplicationData -> "C:\Documents and Settings\All Users\Dati applicazioni\" Codice:
String specialFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
Console.WriteLine("GetFolderPath: {0}", specialFolder);
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Oppure su in realta' ti basta che il file di configurazione sia diverso per ciascun user, ma senza necessariamente sparpagliarlo in giro per la macchina, puoi creare i file chiamati p.es.
Data.UserName.xml Pippo.UserName.conf Dove lo UserName lo trovi sempre sotto Environment.UserName; (Oppure folder separati per ciascun utente ma creati nello stesso spazio eseguibile...) Se non ci sono requisti di sicurezza tendenzialmente propendo per fare cosi', in modo tale per cui la disinstallazione e' sempre la classica rimozione della cartella, senza dover andare in giro a rincorrere file sparsi (o registri, bleah)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
grazie ad entrambi; quello che mi mancava era la classe Environment, l'esempio di Oceans11 è perfettissimo per il mio scopo.
@gugoXX: preferisco sparpagliare per la macchina il programma, specialmente in Vista poi, potrebbe non avere i permessi di scrittura sulla cartella in cui è installato, quale doverosa misura di sicurezza. per la disinstallazione, probabilmente scriverò anche un installer basato su Windows Installer. edit - anche perché ora non ho voglia di controllare ma temo che in Windows due utenti possano anche avere lo stesso nome; è il SID che li identifica univocamente, non il nome. |
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Aug 2004
Messaggi: 39
|
Prova a dare un'occhiata agli user settings e application settings:
http://msdn.microsoft.com/en-us/library/bb397750.aspx http://msdn.microsoft.com/en-us/library/0zszyc6e.aspx Consentono di automatizzare la lettura da disco all'avvio del programma e il salvataggio all'uscita del prog di un gran numero di oggetti (string, size, point, collection... insomma tutti i tipi che sono serializzabili su file XML). Quote:
Se usi il Visual Studio, puoi andare a Project/Properties/Settings e li definisci da lì.
__________________
Quello che davvero mi interessa è se Dio, quando creò il mondo, aveva scelta. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:13.



















