Avatar billede semiprofkode Nybegynder
15. april 2007 - 00:50 Der er 11 kommentarer

nemmeste måde at opdatere software

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.......
Avatar billede kalp Novice
15. april 2007 - 08:51 #1
jeg tror ikke der kigges i den nævnte folder nej...

tror der gemmes nogle værdier i registry som den går ind og læser for placering af sig selv.

da man laver en guid til sin registry kan man antage at den er unik så du burde kunne finde frem til den i registry.

så under installationen af dit software / efter man har valgt placering
så skriver du disse oplysninger i registry
Avatar billede mrbonus Novice
15. april 2007 - 09:07 #2
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.
Avatar billede kalp Novice
15. april 2007 - 09:17 #3
.NET er OneClick som vist er ved hjælp af en webservice
Avatar billede semiprofkode Nybegynder
15. april 2007 - 14:30 #4
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.
Avatar billede semiprofkode Nybegynder
15. april 2007 - 14:34 #5
Ja, spørgsmålet skulle have heddet:

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?
Avatar billede mrbonus Novice
15. april 2007 - 17:15 #6
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.
Avatar billede semiprofkode Nybegynder
15. april 2007 - 18:24 #7
'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.
Avatar billede mrbonus Novice
16. april 2007 - 08:42 #8
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.
Avatar billede mrbonus Novice
16. april 2007 - 08:46 #9
hmm tror lige at jeg vil uddybe den her

" 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".
Avatar billede semiprofkode Nybegynder
16. april 2007 - 09:59 #10
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å.
Avatar billede mrbonus Novice
16. april 2007 - 10:29 #11
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.

Stien dertil kan findes i denne regkey

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\shell folders\Common AppData
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester