Kezdőoldal » Számítástechnika » Programozás » Program autoupdatelése?

Program autoupdatelése?

Figyelt kérdés

Mi a legjobb módja annak, hogy egy program autoupdatelje magát, ha van újabb verzió?


Én azt találtam ki, hogy egy tárhelyen tárolom a frissített program fájljait, és egy fájlban a legfrissebb verzió számát.


A program frissítéskor megnézi, hogy a tárhelyen lévő fájlban szereplő verziószám nagyobb-e az övénél. Ha igen, akkor letölti az új verziót egy mappába maga mellé.

A probléma ott kezdődik, hogyha fut a program, akkor hogyan írjam felül őket? Gondoltam arra, hogy egy batch fájlban törlöm az régi fájlokat, majd a letöltöttet átrakom a régi helyére. A letöltés végénél pedig futtatom a batch fájlt, és aztán leállítom a főprogramot. Csak ezzel ugye az a baj, hogy a batch fájl futásakor még futni fog a program, és nem tudom, hogy hogyan automatizálhatnám/időzíthetném a batch fájl futását a program bezáródása utánra.

A batch fájl pedig önmagát törölné (ha van ilyen lehetőség), vagy a frissített program törölné induláskor.


Szóval tudnátok egy jó megoldást erre? Előre is köszi :)


2016. máj. 5. 12:48
 1/9 anonim ***** válasza:

A batch fájl jó ötlet, de ha konkrétan batch-ban nem tudsz várakozni a program bezáródására, akkor nem muszáj batchban csinálni. Csinálhatod bármiben, lehet ez egy segédprogram is, amit a kedvenc magas szintű nyelvedben írsz.


Csinálhatsz például egy launchert, a júzer ezt indítaná mindig. A cucc minden indításkor megnézi, van-e frissebb verzió a programból. Ha van, letölti és felülírja a gépen levőt. Ezután elindítja a programot.


(Nyilván kérdés, hogyan update-eled a launchert :D, ott már meg lehet azt csinálni, hogy majd a program fogja kibontani az új launchert és felülírni a régit, és a launcher következő indításakor fog futni az új.)

2016. máj. 5. 13:04
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:

#1 vagyok


További gondolatokat "how to implement auto update" keresésre találsz.


Még egy megjegyzés: nyelvfüggő is a dolog abból a szempontból, hogy egyes nyelvekhez vannak már kész megoldások, pl. Java-nál a Web Start.

2016. máj. 5. 13:07
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:

Nem értem miért batchban próbálod updatelni, de akkor meghívod a tasklistet és megnézed hogy a futó folyamatok között van e programod. Ezt addig csinálod ciklikusan amíg az le nem áll.


Okosabb döntés hogy hanyagolod a batch fájlokat és írsz egy updatert egy értelmesebb nyelvben. Windows API-val megnézheted hogy fut e a program. Ha a programod indítja az updatert akár át is adhatod neki a process ID-t paraméterként és akkor meg sem kell keresni.

2016. máj. 5. 13:08
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

sok alkalmazásnak van saját updater-je, mármint saját exe ami csak az updatet végzi!

nem kell külön fájlban tárolnod a verziószámot, csinálhatsz egy olyan oldalt ami kiírja a legfrissebb verzió számát, egy php ami verziót ír ki és letöltésre ad lehetőséget...


23F

2016. máj. 5. 13:18
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:

Egy lehetőség:

[link]

2016. máj. 5. 13:31
Hasznos számodra ez a válasz?
 6/9 A kérdező kommentje:

Épp ez az :D A Launcher megvan, és azt frissíti automatikusan a programot. És most a launcher updatelését szeretném valahogy megvalósítani.


Akkor a batchben lehet várakozni addig, amíg fut a taszk? Hogyan?

Mert akkor meg is van oldva a problémám :D

2016. máj. 5. 13:33
 7/9 anonim ***** válasza:

#1 vagyok


Én így csinálnám, fölösleges még egy külön kör a batch-al:


1. Júzer: elindítja a launchert

2. Launcher: letölti a friss program és launcher verziót, ha van, a programot felülírja, a launchert nyilván nem (leteszi .new fájlvégződéssel vagy valami)

3. Launcher: elindítja a programot, kilép

4. Program: ha talál új launcher verziót a mappájában, felülírja a régit

5. Program: elindul


Következő launcher indításkor már az új verzió indul.

2016. máj. 5. 14:20
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

De itt van amúgy batch kód, másik processzre várakozáshoz:

[link]

2016. máj. 5. 15:12
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Valószínűleg a várakozásos lesz, mert annyira nem tetszik ez a kölcsönös frissítés dolog :)
2016. máj. 5. 17:26

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!