Program autoupdatelése?
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 :)





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.)





#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.





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.





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
É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





#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.





De itt van amúgy batch kód, másik processzre várakozáshoz:
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!