Oppure

Loading
09/10/15 7:53
carmelo
Buongiorno!
in questa pagina
pierotofy.it/pages/extras/forum/…
taaaanto tempo fa, con il vostro aiuto, feci una piccola utility che mi salvava le note scritte in un tmemo in un file testo nella directory "c:" e le richiamava ogni qual volta accendevo il pc.
Passando a windows 10, poichè di default non si hanno i permessi di scrittura in "c:", tale utility non riesce più a salvare e caricare questo file di testo proprio perchè sta in "c:".
A questo punto, affinchè sto programmino possa funzionare in windows 10, dovrei apportare una modifica inerente il salvataggio del file.
Ho pensato a due strade differenti:
1. Cambiare il percorso dove il programmino salvi il file di testo. Ma questo percorso deve essere tale da trovarlo in qualsiasi pc, e non so quale sia quindi chiedo a voi.
2. Lasciando il percorso originale, ovvero "c:", inserire un pezzo di codice che permetta al programmino automaticamente di scrivere in "c:" passando i permessi di scrittura. E anche qui non saprei come fare.

Sapreste darmi dei consigli su quale strada scegliere?? :)

Grazie mille! :k:
C
aaa
09/10/15 8:21
TheDarkJuster
Basta avviarlo come amministratore
aaa
09/10/15 8:49
carmelo
si grazie, in effetti cosi sapevo funzionasse ma se do il programmino ad altri utenti, non vorrei dire ogni volta di avviarlo come amministratore, ma fare in modo che lo faccia in automatico...
aaa
09/10/15 11:44
TheDarkJuster
Non puoi. L UAC di Windows è fatto appositamente per prevenire questo comportamento. Cosa succederebbe se i programmi malevoli potessero eseguirsi da soli come amministratore? Avremmo un altro Windows XP........
aaa
09/10/15 12:56
TheDarkJuster
Crea un installer che crea una cartella che sarà scrivibile senza privilegi
aaa
09/10/15 19:48
GN
A mio parere la soluzione migliore sarebbe utilizzare una cartella apposita per il salvataggio di dati/impostazioni dell'utente, come la Dati Applicazioni. Non sono sicuro che funzioni ma potresti semplicemente provare a mettere %appdata%\nome_del_tuo_programma\ al posto di C:\ nel tuo codice (infatti, se provi a digitare %appdata% nella barra dell'indirizzo di una finestra di explorer o nella finestra Esegui che si apre con Win+R ti si apre la cartella Dati Applicazioni).

Non sono sicuro che aprendo un file da codice Delphi questa specie di shortcut funzioni, quindi come alternativa ti consiglio di leggere questo articolo delphi.about.com/od/kbwinshell/a/… che spiega come farlo "nel modo giusto" con la funzione SHGetFolderPath, ricordando, come indicato alla fine dell'articolo, di aggiungere una sottocartella al path ritornato da quella funzione in modo da salvare i dati del tuo programma in una sua specifica sottocartella di %appdata%.

Per finire forse ti può interessare un elenco dei valori che puoi passare a SHGetFolderPath() nel caso volessi scegliere una cartella diversa da Dati Applicazioni: msdn.microsoft.com/en-us/library/windows/desktop/…(v=vs.85).aspx.
Ultima modifica effettuata da GN 09/10/15 19:53
aaa