|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2011
Messaggi: 44
|
File permanente (anche dopo chiusura)
Ragazzi mi si è posto davanti un problema: non so come creare una variabile il cui valore non viene ripristinato alla chiusura e riapertura dell'intero programma. La variabile in questione è un percorso, ossia il percorso dove vado ad installare il programma. Tale percorso è deciso dall'utente e quindi è una variabile. Dato che questa cartella mi serve per ripescare dei dati da utilizzare, vorrei che ogni qualvolta che si apre l'applicazione (in precedenza già installata), il percorso sia disponibile automaticamente, senza dover chiedere all'utente di riselezionarlo.
Non ci fosse soluzione, pensavo di creare un file di testo in una cartella presente in TUTTI I COMPUTER con scritto il percorso di installazione, ma in questo caso mi servirebbe, appunto, una cartella sulla quale è possibile accedervi liberamente e presente in tutti i computer montanti un sistema Windows (almeno da XP a 7). Grazie |
|
|
|
|
|
#2 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21854
|
Quote:
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Detto questo, suggerisco anche di separare la cartella dei dati da quella del programma, visto che generalmente richiedono permessi diversi.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Jan 2008
Città: Roma
Messaggi: 126
|
Quote:
(http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx) Se il prg e' di tipo "Console" forse te la cavi leggendo argv[0]... Ciao
__________________
La forza dei forti sta nel traversare le traversie con occhio sereno! (PK) ... I computer sono esattamente come gli esseri umani: fanno qualsiasi cosa tranne che pensare. (John Van Neumann) Siamo brevi, il mondo è sovraffollato di parole. (Stanisław Jerzy Lec) |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Male usare la cartella dell'eseguible, possibilimente in readonly su parecchie installazioni.
Male anche c:/ o altri percorsi statici. Registro eviterei. Meglio usare la cartella di roaming privata dell'utente, oppure quella di non-roaming, sempre privata Sulla mia corrente installazione sarebbereo C:\Documents and Settings\miouser\Local Settings\Application Data e C:\Documents and Settings\miouser\Application Data La prima e' sempre e solo locale sulla macchina fisica, la seconda me la ritrovo sincronizzata su qualunque computer della rete il mio utente si colleghi. E i percorsi alle 2 certelle si ottengono interrogando C# : Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData ) e in C++: Codice:
// Allocate a pointer to an Item ID list LPITEMIDLIST pidl; // Get a pointer to an item ID list that represents the path of a special folder HRESULT hr = SHGetSpecialFolderLocation(NULL, CSIDL_PERSONAL, &pidl); // E altre costanti // Convert the item ID list's binary representation into a file system path char szPath[_MAX_PATH]; BOOL f = SHGetPathFromIDList(pidl, szPath); // Allocate a pointer to an IMalloc interface LPMALLOC pMalloc; // Get the address of our task allocator's IMalloc interface hr = SHGetMalloc(&pMalloc); // Free the item ID list allocated by SHGetSpecialFolderLocation pMalloc->Free(pidl); // Free our task allocator pMalloc->Release(); // Work with the special folder's path (contained in szPath)...
__________________
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. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: May 2011
Messaggi: 44
|
Quote:
Grazie, funziona il tuo metodo. |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) che e' shared tra tutti gli utenti di quella macchina
__________________
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. |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Questa non la sapevo. Grazie !
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:45.




















