Hogyan tudok olyan programot írni ami leszedi a frissítéseket magának?
Akkor mondom, legjobbat, amit én használok:
Csinálsz egy sql databaset, egyetlen sorral, colummal. Ez a rublika egy 8 jegyü változó kódot tartalmaz, amit random csak úgy beirok, manuálisan.
A program elsõ scriptjeibe berakom, hogy kérdezze le az sql database 1. columjának az értékét. Ha ez egy update.txt fájlban tárolt kóddal megegyezik, indul a progi, ha nem, akk felajánja a frissitést. Ekkor letölti a szeróról a telepitõfájlt, és futtatja. A user adatokon kivül mindent újrarak az update.txt-vel együtt, ami immár az új kódot tartalmazza. Remélem érted. Ez lehet, hogy nem a legefektivebb, de nekem elég egyszerü, és 5 sorban leirható:
1: az sql szerver megnyitása
2: az update.txt megnyitása
3: az sql táblázatból az adat kikérése és változóba másolása
4: a fájlból az adat másolása egy változóba
5: egy if + else parancskombó, ami egy egyszerü összehasonlitást csinál:
Pythonban:
If(sql==file):
update()
Else:
launch()
Ne vedd sértésnek, de a kérdésed alapján az az érzésem, hogy még az alapprogram sincsen megírva, így ilyen kiegészítéseken egyelőre nem is gondolkodnék a helyedben, pláne, hogy úgy tűnik működő weboldalad (szervered) sincsen, amin keresztül ilyen szolgáltatást nyújthatnál.
Természetesen ha a programod főbb funkciói többé-kevésbé működnek, akkor elnézésedet kérem és érdemes gondolkodni ilyen dolgokon is, de persze közben valamilyen tárhelyet (akár ingyeneset is) érdemes regisztrálni, ahol mondjuk PHP-t tudsz futtatni, az elég lehet.
Első!
> sql database
Egyetlen sor és oszlopért db-t csinálj? Ez nem ágyúval verébre, hanem tankkal szöcskére. Nem lenne elég egy fájl, ahol van egy verzió + egy könyvtár elérési út?
Sohasem értettem mire jó ez a nagy sql függőség.
> update.txt fájl
Had lehessen szerkeszteni kívülről, a program had tudja már a saját verzió számát.
> Pythonban
Asztali alkalmazásról van szó... de a 4 soros példaprogramodnak elmegy.
Az update egészed addig működik amíg nem kell azt az .exe-t felülírni ami éppen fut.
Erre több megoldás is van:
0. A prgramod megnézi, van-e újabb verzió fent és megkér hogy töltsd le. Esetleg jófejségében behozza az oldalt. Ilyenkor lehet kiírni, hogy "recommended" meg hogy ez egy fontos biztonsági update, meg lehet sopánkodni nem nem kéri a user.
1. Könnyűsúlyú exe. Minden külön dll-ekben és fájlokban van. az alkalmazás csak update-elni és dll-t hívni tud. Akkor van gond, ha ebben a minimális funkcionalitásban is változik valami. Ez major update-nek számít és újra le kell töltened.
2. Updater. A programod megvizsgálja van-e új verzió, és ha van bezárul és megnyitja az updater-t. Ez a kis segédprogram az alkalmazással együtt települ fel, egyértelmű funkcionalitása van, nem kell cserélni. Magát a frissítést pedig az updater végzi, le tudja cserélni az exe-det is.
3. Intelligens webes installer. A programod letölti az új installert ha van újabb (pár száz kilobájtról van szó). Kilép és futtatja. A telepítő lefut és újra feltelepíti a programodat webes forrásból, persze van olyan okos, hogy csak az újabb fájlokat szedi le és a felhasználói beállításokat megtartja, vagy szükség szerint migrálja.
Ez nagyon hasonlít a 2. pontra, de annyi előnye van, hogy ez egyben telepítő is, nem kell külön csinálni hozzá.
4. Launcher. Gyakorlatilag olyan mint az updater, annyi különbséggel, hogy alapjáraton ezt kell futtatni. Ha van frissítés leszedi, ha nincs van rajta egy szép nagy Start gomb, amivel indul az alkalmazás. Esetleg lehet híreket kirakni rá.
Ezt néha splashscreen-nek álcázzák, így nem tűnik fel, hogy egy másik programmal folytatjuk futtatást, ebben az esetben ez nem interaktív.
Köszi a segítséget. Annyi bajom lenne még hogy ha valamit feltöltök a weboldalra (atw) nem szedi le... Ad neki nevet meg minden kiterjesztéstis de mind csak 1-2 kilobit lesz...
próbáltam úgyis hogy egy már meglévő oldalra csak felhasználóként feltöltök valamit de akkor sem szedi le... csak lényegében létre hoz egy fájlt ami azt oldal adatait tartalmazza. Most vagy az oldal rossz vagy a parancssor. A másodikra nagyobb az esély. Próbáltam ftp-n keresztül letölteni az nem is működött. C#-ban íródna ha íródna... Ötlet valaki?
Teszteld ezzel: [link]
Egy nagyon kicsi sftp szerver a gépeden. Ha ide "fel" tudod tölteni akkor működnie kell máshol is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!