Når nu et program skal opdatere sig selv automatisk, som f.eks antivirus programmer, hvor dan gør de så det?
Jeg forestiller mig at programmet bruger C:\Documents and Settings\All Users\Application Data\'application name' til at lægge filer efter download, hvis programmet skal virke for alle brugere.
Det ville jeg gerne gøre i mit program også, spørgsmålet er bare, virker denne sti altid? i alle windows operativsystemer (inkl vista) ? Eller skal man gøre noget helt andet.......
De fleste nye programmer (til windows) anvender "MSI" som kan håndtere hele opdateringen for dig, jeg har selv lavet en automatisk opdaterings webservice, som så henter en "msi patch (msp)" når den bliver eksekveret, installerer den det hele.
Jeg tror det er nemmest at bruge "wise" eller et andet værktøj, som styrer instalastionen for dig, det sparer dig for en del "opfinden af den dybe tallerken". Men der skal man først lære at håndtere et værktøj som kan lave en "msi" selvfølgelig.
kalp: en alm bruger uden admin rettigheder kan ikke ændre filer i programkataloget. Derfor forslår jeg C:\Documents and Settings\All Users\Application Data\'application name'. Og så skriver du 'jeg tror ikke der kigges i den nævnte folder nej... '. Det lader til at du har misforstået spørgsmålet.
mrbonus: Det lyder interessant, jeg laver allerede .msi filer i visual studio. Hele spørgsmålet går ud på hvordan en alm bruger uden rettigheder til at skrive i programfolderen kan opdatere sit program, så hvor skal opdateringen ligge ?? C:\Documents and Settings\All Users\Application Data\'application name' f.eks. ? Og hvordan får jeg fat i den i koden uafhængigt af hvilket drev windows ligger på.
Jeg skriver egentlig for at få et svar, ikke gæt. Måske skulle jeg have formuleret spørgsmålet mere præcist.
Når et program skal opdatere sig selv, hvor lægger man så programopdateringer og evt nye filer, så det ikke kun virker for alm brugere som ikke har adgang til program folderen?
Der er vist en del uafklarede ting her, er dit program en service, eller et almindeligt "form" program som brugeren starter når han har brug for det, eller hvad er det præcist du har?
En simpel til alle måderne, kunne være at kun installere updates, når en administrator var logget på, kan man teste med kode, og når der var en update, men en almindelig bruger er logget på, så bare fortælle at der var en update, og at den vil blive installeret næste gang en administrator logger på.
Jeg vil mene at det er en fuske løsning at ligge det et eller andet skummelt sted, som måske alle kan se.
'Jeg vil mene at det er en fuske løsning at ligge det et eller andet skummelt sted, som måske alle kan se.'
-Det vil jeg mene det ikke er, eftersom programmer kan installeres for "alle brugere" når man bruger en msi fil. Så skal alle brugere også kunne se og bruge det osv. Hvis det installeres for "aktuelle bruger" alene, så kan programmets opdateringer jo lægges i aktuelle brugers folder i documents and settings. Problemet er jo at alm brugere ikke har adgang til programfolderen.
Det med at kun administrator kan installere updates holder ikke. Heller ikke for f.eks. antivirus programmer, det skal ske løbende. Hvilken type mit program er, mener jeg ikke er relevant, spørgsmålet er generelt.
Hmm, har måske misforstået dig lidt, ja man kan sagtens ligge downloadede filer i "documents and settings", men det giver jo stadig ikke almindelige brugere ret til at installere i program folderen, for hvis de ikke kan gemme filen i program folderen, så kan de jo heller ikke installere den.
Jeg havde åbenbart opfattet det som om at du ville installere programmet i "documents and settings", hehe, my bad.
" for hvis de ikke kan gemme filen i program folderen, så kan de jo heller ikke installere den."
Hvis de ikke har skriverettigheder til program folderen, så vil de heller ikke have skriverettigheder, under msi installationen, og kan derfor heller ikke installere i program folderen. Men hvis vi antager at det kun er "ekstra filer" der skal ligges ind, så som "virus definitioner", så kan de selvfølgelig godt blive lagt i "documents and settings", det kan man selvfølgelig godt få alle brugere til at gøre, men det kræver selvfølgelig at det kun er "ekstra filer".
og det var netop det jeg mente med 'Jeg forestiller mig at programmet bruger C:\Documents and Settings\All Users\Application Data\'application name' til at lægge filer efter download'
Så nu kan jeg jo spørge igen, er det det smarteste sted, eller er der flere foldere som er tilgængelige for alle og hvordan får man fat i folderen i koden uafhængigt af hvilket drev windows ligger på.
Til et sådant formål hvor også normale brugere skulle gemme, vil jeg mene at C:\Documents and Settings\All Users\Application Data\'application name' ville være hensigtsmæssigt at benytte.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.