Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Automatisk uppdatering!

Postades av 2006-04-29 19:27:21 - Tobias Lindberg, i forum visual basic - allmänt, Tråden har 15 Kommentarer och lästs av 844 personer

Hej!
Jag har klurat lite idag och skrevigt ett litet program som ska automatiskt uppdatera sig om det finns en ny version ut!
Det funkar som så att varje gång det startas så laddar programet ner en fil vid namn 1.txt från min hemsida, i den filen så står det tex: 1.02.00 asså det står den nya versionen.
Och då varje gång man startar programet så kollar laddar programet ner den filen och gämför den med programets version tillexempel: Om programet har version 1.01.99 (är angivet i en string) och då filen programet laddar ner har version 1.02.00 , då gör programet som så att den laddar ner ytligare en text fil som heter 2.txt .. I denna fil så står alla filer som uppdateringen innehåller, exempel:
redme.txt
test.exe
Och då tar programet och laddar ner dom filerna som står i 2.txt och ersätter dom med dom filerna som redan finns i mappen..
Det låter som det ska funka va?, ja det gör det till viss del. Det funkar så långt till programet laddar ner test.exe (som programet vi har startat heter) för när programet laddar ner den filen så kan det ej ersätta den med den befintliga filen.
Då är min fråga är det någon som vet hur jag kan lösa detta?

Tack på förhand!


Svara

Sv: Automatisk uppdatering!

Postades av 2006-04-29 19:42:18 - Thomas Roman

Jag använder mig ungefär av samma princip och jag har löst det som så att jag har två exe-filer, en "startare" (start.exe) som användaren startar och en annan (program.exe) som är själva programmet.

När du ladda ner dom nya filerna så ger du dom tillfälliga namn, tex program.exe.temp, och när start.exe startar så kontrolleras alla *.temp-filer. Finns det några så tas originalen bort och .temp tas bort från namnet på dom nya filerna. Därefter startas program.exe upp.
Finns inga *.temp-filer så startas helt enkelt program.exe direkt.

Enda problemet är väl att start-programmet (start.exe) inte kommer att kunna uppdateras. Men den ska ebart innehålla funktionen för att döpa om filerna och starta program.exe, så denska aldrig behöva uppdateras.


Thomas


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-29 19:49:30 - Tobias Lindberg

Jo jag har också tänkt på att göra så att ha två exe filer, men jag vill ej ett det ska finnas mer en 1 exe fil, för mitt program ska vara lätt att använda och det ska vara lika lätt att tabort!, alltså det är så att man bara laddar hem exe filen och dubbelklickar på den så drar programet igång och så är det bara att använda det!
Men så som du har gjort är rätt smart men det måste finns något annt sätt!

Tack för svaret!


Svara

Sv: Automatisk uppdatering!

Postades av 2006-04-29 19:52:04 - Peter Larsson

Generera en bat-fil som byter ut programmet, starta bat-filen och avsluta programmet.

Något i stil med:
<code>
:check
if exist test.exe goto check

del test.exe
ren new_test.exe test.exe
test.exe
</code>

Om du startar bat-filen med ShellExecute kan du ange SW_HIDE i nShowCmd parametern så syns inte konsolen som startas heller.

/Peter


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-29 20:00:09 - Tobias Lindberg

Tack så mycket ska kolla på det :), men vad menar du med att jag ska ange SW_HIDE i nShowCmd parameter ? Hur gör man det?


Svara

Sv: Automatisk uppdatering!

Postades av 2006-04-29 20:15:56 - Peter Larsson

<b>>men vad menar du med att jag ska ange SW_HIDE i nShowCmd parameter ? Hur gör man det?</b>

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3

'I någon sub/function:
ShellExecute Me.hWnd, "open", "replace.bat", vbNullString, CurDir, SW_HIDE


/Peter


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-29 20:51:41 - Tobias Lindberg

Hej!
Tack så mycket för ditt svar allt funkar nu förutom, när programet ska dra igång bat filen,, det vill ej starta filen.
och på denna rad:
ShellExecute Me.hwnd, "open", "uppdatera.bat", vbNullString, CurDir, SW_HIDE
blir det felmedlenade så fort man ska göra om allt till en exe fil. Men om jag byter där det står Me.hwnd till hwnd så blir det inga fel när jag gör om det till en exe fil men då startar inte bat filen vad kan vara fel? :/

(Du hadde skrivigt lite fel i vad som skulle vara i bat filen!, Det ska nog vara såhär:
if exist test.exe goto check
:check
del test.exe
ren new_test.exe test.exe
test.exe
:P


Svara

Sv: Automatisk uppdatering!

Postades av 2006-04-29 21:08:38 - Thomas Roman

Bat-filen ska nog vara så här:
<code>
:check
del test.exe
if exist test.exe goto check
ren new_test.exe test.exe
test.exe
</code>

Om du kör ShellExecute från en module så får du ändra Me.hWnd till Form1.hWnd (eller vad din form heter).


Thomas


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-29 21:18:11 - Tobias Lindberg

Okej, tack det var det jag hadde glömt jag :P
jag ändra bat filen till detta!:
<code>
if exist test.exe goto check

:check
del test.exe
ren new_test.exe test.exe
test.exe
del uppdatera.bat
exit
</code>


Svara

Sv: Automatisk uppdatering!

Postades av 2006-04-29 21:34:45 - Peter Larsson

<b>>Du hadde skrivigt lite fel i vad som skulle vara i bat filen!, Det ska nog vara såhär:</b>
Oj lite slarivgt av mig, ursäkta. Bat-filen bör se ut ungefär som Thomas skrev, dvs. if-satsen ska vara efter del.
Exit behöver inte finnas med eftersom konsolen ändå kommer att avsluta då den når slutet på filen.

/Peter


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-29 22:07:19 - Tobias Lindberg

Okej tack nu funkar allt som det ska :)!


Svara

Sv: Automatisk uppdatering!

Postades av 2006-04-30 11:29:34 - Niklas Jansson

En annan variant är att det första steget i uppdateringen är installations-exe som laddar ner nya filer, tar bort de gamla osv., för att slutligen ta bort sig själv. Det ger dessutom lite större frihet, det enda i uppdateringsväg du behöver i programmen är något som laddar ner ett installationsprogram och startar det. Uppdateraren kan däremot vara jävligt avancerad även om man uppdaterar från version 1 till version 20.


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-30 11:41:40 - Tobias Lindberg

Okej tack..
Men jag tycker detta var ett smart sätt att göra det på så jag håller mig till det :P


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-30 11:54:58 - Thomas Roman

Att ha ett installationsprogram som kan ladda ner nya filer, ta bort dom gamla och slutligen ta bort sig själv låter helt klart mest intressant.

Precis som Niklas säger så kan avancerade uppdatering göras och då måste uppdateraren också vara avancerad.

Niklas, du har inga tips på hur man kan göra sånna installationer?


Thomas


Svara

Sv: Automatisk uppdatering!

Postades av 2006-04-30 13:40:56 - Niklas Jansson

I princip menar jag följande:

1. Du har ett program A, det är det programmet som användaren använder sig av.
2. Vid uppstart så kollar program A enligt lämplig metod upp om det finns en uppdatering, och laddar i så fall ner ett program B. Sen startas B och A avslutar sig själv.
3. Program B är sedan det program som sköter själva uppdateringen. Det kan vara hur komplicerat som helst, men i princip så ska den kolla nuvarande version, senaste version, ladda ner de nyaste filerna, ersätta de gamla, och sen ta bort sig själv.

Exakt hur själva installationen går till beror ju lite på vad man har utvecklat i och vilket OS det är frågan om. Men har man ett hyfsat enkelt system så räcker det ju sannolikt med att byta ut filer.

Är det något speciellt du tänker på angående tips; jag tycker det känns ganska straight-forward?


Svara

Sv:Automatisk uppdatering!

Postades av 2006-04-30 16:33:18 - Thomas Roman

Jag tänkte mer om du visste nått färdigt program som kunde skapa installationer från färdiga VB(.NET)-projekt och som kunde installera sig (och ta bort den gamla versionen) automatiskt.

Eftersom jag använder mig av installationer när man lägger in programmet från början så vill jag givetvis behålla möjligheten att avinstallera via Lägg till/Ta bort program även efter en uppdatering.

Annars gör jag i princip som du säger:
1. Användaren laddar ner en installation som installerar alla nödvändiga ocx-filer och liknande för Program A + .exe-filen för Program B.
2. Program B laddar ner senaste versionen av exe-filen för Program A, Program A startas och Program B tas bort.

Program A kan sen ladda ner nya versioner av .exe-filen vid behov och genomför bytet enligt principen i mitt första inlägg.

Det jag saknar är att vid behov kunna installera nya ocx-filer via en uppdatering, filer som sen också ska avinstalleras via Lägg till/Ta bort program.


Thomas


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 723
27 958
271 751
630
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies