Gå til innhold

Anbefalte innlegg

Skrevet

Hei.

 

Har en applikasjon hvor brukeren skal velge install path til en applikasjon i en folderBrowser. Dette er en applikasjon som skal kjøres flere ganger, så det hadde vært ønskelig at applikasjonen husket på denne pathen til neste gang den kjøres.

Er ikke veldig keen på å skive til fil for å si det sånn... Det må vel være en enklere måte?

Videoannonse
Annonse
Skrevet

Støtter Registry helt klart!!

 

Og det er superenkelt:

Registry.SetValue("HKEY_CURRENT_USER\\Mitt kule program","Forrige Path",valgtPath);

valgtPath = (string) Registry.GetValue("HKEY_CURRENT_USER\\Mitt kule program","Forrige Path", "No path selected");

  • 1 måned senere...
Skrevet (endret)

Kan du ikke bare lagre file pathen i en fil en eller annen plass?

 

string installPath = ""; // Applicasjonen installeres til denne strengen
string LocPath = System.Environment.GetFolderPath(SpecialFolder.LocalApplicationData); //Streng til /*USER*/+/Appdata/Local
string InstPath_File = LocPath + "/instPath.pth"; // Path til filen men installPath

// Hvis filen finnes, bruk innholdet
if(System.IO.File.Excists(InstPath_File))
 installPath = System.IO.File.ReadAllText(InstPath);
// Hvis ikke, la brukeren velge selv, så lagre filen men strengen til neste gang
else {
 //************************************
 //Code to make your user choose install path
 //OpenFileDialog and such
 //************************************
 System.IO.File.WriteAllText(InstPath_File, installPath);
}

 

Enkelt som bare det. :)

 

(Hvis du vil se denne koden orentlig, kopier den og legg den til i notepad eller ett annet "bredere" vindu)

Endret av dahwan
Skrevet

Skal du bruke en fil er vel App.config i så fall så og si den eneste brukandes metoden å bruke spør du meg. Ville vel strengt tatt brukt det selv istedetfor registry, men det er vel en smakssak.

Skrevet (endret)
"Hvorfor ikke fil" og "enkelt som bare det", sånn etter at eksempelet med Registry var pastet, som var 2 linjer langt, mye raskere OG enklere...

 

Til hans forsvar:

 

string ConfigFile = Environment.GetFolderPath(SpecialFolder.LocalApplicationData) + "install.path";

string installPath = File.Exists( ConfigFile ) ? null : File.ReadAllText( ConfigFile );

 

File.WriteAllText( ConfigFile , installPath );

 

 

Unødvendige variabler og kommentarer som gjorde at det så så ille ut....

 

 

 

Edit: Hvordan klarte jeg å quote meg selv? :D

Edit2: Åja.... argh, fredag og sliten...,.. :cry:

Endret av jorn79
Skrevet

OK, beklager :)

 

Jeg tenkte bare at registry så såpass avansert ut at jeg ville ikke ha forstått det for 5 måneder siden, og du må nesten bruke visual studio eller noe lignende for å ha med settings, så å lage en fil trengs kansje mer kode, men jeg likte metoden å gjøre det på :p

 

Sorry

Skrevet
Støtter Registry helt klart!!

 

Og det er superenkelt:

Registry.SetValue("HKEY_CURRENT_USER\\Mitt kule program","Forrige Path",valgtPath);

valgtPath = (string) Registry.GetValue("HKEY_CURRENT_USER\\Mitt kule program","Forrige Path", "No path selected");

 

Bare som en kommentar, synes jeg det er litt finere å gjøre det slik:

 

Microsoft.Win32.Registry.CurrentUser.CreateSubKey("mittKuleProgam").SetValue("path", installPath);

og

string installPath = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("mittKuleProgram").GetValue("path");

 

Slipper å måtte escape \ eller tenke på at HKEY_CURRENT_USER er skrevet riktig og slikt ;)

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...