Avatar billede kroning Nybegynder
25. maj 2007 - 16:26 Der er 8 kommentarer og
1 løsning

Auto opdatering af program

Jeg vil lave det således at mit program automatisk kan opdatere sig selv, det er blot en enkelt EXE fil.
Jeg har set andre spørgsmål om det samme men har ikke fundet noget brugbart.
Så var det jeg kom til at se at man faktisk i Windows XP godt kan flytte en EXE fil selvom den er startet. Så jeg tænkte man kunne lave det således:
1. Hente den nye EXE fil og gem som ny.tmp
2. Flytte den gamle EXE fil til en temp mappe
3. Ændre navnet på ny.tmp til ProgramNavn.EXE

Næste gang brugeren så starter sit program vil det være den nye version, programmet kan evt. her checke om der ligger noget i temp mappen og så slette det.

Det vil virker i WinXP men hvad men Vista og tidligere windows versioner, jeg har ikke lige mulighed for at checke det?

Evt. nogen der kan se andre problemer i denne fremgangs måde?
Avatar billede martinlind Nybegynder
25. maj 2007 - 18:57 #1
Jeg ville vælge at lave en "lille" loader som checker for om der er opd. så behøver du ikke alle dine "krumspring" og det vil virke på alle win. ver. :)
Avatar billede kroning Nybegynder
25. maj 2007 - 19:18 #2
Ved ikke hvad du mener med det?
Avatar billede martinlind Nybegynder
25. maj 2007 - 19:59 #3
lav et program der checker om der er opd. hvis der er.. hent dem og lav en shellexecute af dit hovedprogram og afslut din loader, hvis der ikke er, lav en shellexecute af dit hovedprogram og afslut din loader :) KIS - efter bedste evne og det virker, fidusen er at din exe ( hovedprogram ) ikke kører når du checker og opdaterer
Avatar billede kroning Nybegynder
25. maj 2007 - 20:01 #4
Jeg gætter på at med loader så mener du et lille program som startes først og som så starter hoved programmet.

Problemer:
Det betyder så at hvis brugeren starter hoved programmet direkte så virker det ikke.
Loader programmet skal laves 100% korrekt fra starten og der må ikke blive behov for en ny opdaterings metode i fremtiden.
Loader programmet skal med det samme starte hoved programmet da brugeren ikke skal vente på at en evt. opdatering hentes, så når loader programmet har hentet opdateringen kan det ikke med det samme opdatere hoved programmet da det jo allerede kører, så derfor skal der alligevel laves lidt "krumspring" med en temp fil der først ændres til hoved programmet næste gang loader programmet starter.

Men det er da rigtig at det vil virke på alle windows versioner.
Avatar billede kroning Nybegynder
25. maj 2007 - 20:04 #5
Nå nu skrev du noget i mellemtiden :).

Men som jeg så skrev så kan jeg ikke lave det således at brugeren skal vente på at en opdatering hentes.
Avatar billede martinlind Nybegynder
25. maj 2007 - 20:22 #6
din metode vil sikkert virke i xp og frem, mon ikke :)

Min metode virker hvergang, og kan snildt laves så brugeren ikke kan starte hovedprogram selv :)
Avatar billede skovjuul Nybegynder
26. maj 2007 - 05:59 #7
Hvis du er ligeglad med selv at lave din loader så kan jeg varmt anbefale TWebUpdate fra http://www.tmssoftware.com/. Den skal bare sættes op i dit hovedprogram og den kan både opdatere din .exe fil og tilføje evt. nye filer og checke for dem i fremtiden.
Avatar billede rekun Nybegynder
04. juni 2007 - 19:41 #8
du kan evt. også bare bruge et pakke program som fx WinRAR. den kan skjule alle dialoger, så brugeren ikke ser at filen bliver erstattet. Du kan så køre din selvudpakkende fil i OnDestroy.
Avatar billede kroning Nybegynder
17. august 2007 - 23:10 #9
Jeg har lavet det som jeg beskrev, det virker i XP og Vista men ikke i W98 men det kan jeg nu godt leve med. Og da der ikke var noget der egentlig svarede på mine 2 spørgsmål så svare jeg selv så der kan blive lukket her :)
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