Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Cod, sintaxa si comenzi  Actualizare apl...
 Actualizare aplicatie
 
 5/13/2011 9:22:29 PM
User is offlineDumitru
172 posts
5th


Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:05:40 PM)
Folosesc VFP7
Vreau sa fac upgrade automat la un executabil (din el!!!) rezultat din "proiect.PJX"
L-am impartit in doua:
- proiect1.PJX care contine numai main.prg in care am adaugat o procedure de upgrade.
- proiect2.PJX care contine restul fisierelor prg, scx, vcx (frx-urile le-am lasat afara)
Dupa compilare am proiect1.EXE si proiect2.EXE
In main.prg am SET PROCEDURE TO proiect2.exe
Procedura "upgrade" din proiect1.EXE inchide fisierul deschis cu SET PROCEDURE, il rescrie cu cel din noua versiune si reface SET PROCEDURE TO.

Merge, problema apare la comenzile DO FORM ...
Nu le gaseste in fisierul procedura deschis. Unde trebuie sa le pun ca sa le vada? Evident, in afara de proiect1.exe, ca n-am facut nimic ...
Orice alta idee prin care sa pot face upgrade automat mi-ar fi de folos
Multumesc



 5/14/2011 1:14:33 PM
User is offlineDumitru
172 posts
5th


Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:06:05 PM)
Nu m-am exprimat bine sau nu se poate?!?

 5/14/2011 1:59:42 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:06:21 PM)

Te complici inutil si in plus ai tot felul de probleme, dupa cum vezi. Fa doua executabile distincte: updaterul si aplicatia propriuzisa; userul da dubluclick pe updater, care verifica daca exista o versiune mai noua, daca da, o descarca local si apoi o lanseaza in executie cu RUN /N, apoi QUIT sau cu CreateProcess, ca in exemplul de aici: http://www.west-wind.com/wconnect/weblog/ShowEntry.blog?id=533

In felul asta o sa ai doua executabile care nu depind unul de celalalt; rolul updater-ului este doar sa actualizeze aplicatia principala si sa o lanseze in executie, nimic mai mult.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 5/14/2011 2:47:08 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:06:38 PM)
Eu folosesc tot doua executabile,  un loader si aplicatia.  Utilizatorul lanseaza intotdeuna loaderul - pe el este facut shortcut-ul din programe, si doar el are numele aplicatiei aplicatiei, asa cum este cunoscut de utilizator. Executabilul aplicatiei are in sufix versiunea.
La lansare, loaderul cauta executabilul cu versiunea cea mai recenta, apoi verifica daca exista o versiune mai noua. Daca o gaseste, o descarca si o lanseaza, daca nu, lanseaza versiunea curenta.
E suficienta restartarea aplicatiei pentru a se instala ultima versiune.


Daniel Buduru
 5/14/2011 7:00:23 PM
User is offlineDumitru
172 posts
5th


Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:06:58 PM)
Multumesc
Acum am clar ce trebuie sa fac. Voi pune si in aplicatie un item "verifica versiune" pentru ca utilizatorul sa stie cand sa acceseze programul care download-eaza si face upgrade

[Edit]
Scuze, acum am vazut ca existau mai multe subiecte pe tema asta
 5/14/2011 8:02:25 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:07:14 PM)
Daca stai la mila userului programul tau n-o sa se actualizeze niciodata. Fa cum ti s-a sugerat, te rog - e verificata in practica. NECONDITIONAT, userul lanseaza updater-ul. Si mai departe decizi TU ce sa faci, nu userul.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 5/15/2011 7:33:49 PM
User is offlineDumitru
172 posts
5th


Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:07:28 PM)
Ma gandeam ca daca este un program separat poate nu-l lanseaza deloc dar din aplicatie poate verifica.
Ar fi mai bine ca de fiecare data sa starteze update-rul, daca exista o versiune noua o pune daca nu lanseaza aplicatia. Asa?
Parca nici asa nu e bine, updater-ul va sta tot timpul in memorie
 5/15/2011 7:50:45 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:07:39 PM)
In functie de frecventa actualizarilor, se poate implementa verificarea versiunii doar la anumite intervale de timp.

Updaterul are cateva linii de cod ... Sunt tot felul de gadgeturi care ruleaza in Windows si care consuma resurse considerabile ...
Oricum, daca memoria RAM ocupata de el este o problema, updaterul poate lansa aplicatia cu shellexecute, dupa care sa se inchida.
E simplu de verificat amprenta de memorie, fie cu Task Manager, fie cu Process Explorer de la sysinternals.


Daniel Buduru
 5/15/2011 8:23:57 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:07:52 PM)
Eu am spus ca folosesc un loader, care poate face si update. Loaderul si aplicatia au nume diferite - o radacina comuna, dar aplicatia are in sufix numarul versiunii.
De ex:
Loader: myapp.exe
Aplicatia: myapp001.exe, myapp002.exe, myapp003.exe .... myapp900.exe
La lansare, loaderul cauta cea mai recenta versiune a aplicatiei.
Daca se face un update in timp ce aplicatia ruleaza, noua versiune va avea un nume diferit de versiunea curenta si nu va fi nevoie sa o suprascrie.
Se evita astfel atat necesitatea opririi aplicatiei pe timpul actualizarii cat si interventia unui antivirus care considera suprascrierea executabilului o actiune suspecta.
Daca nu vrei sa verifici actualizarea la pornire, ci sa o faca userul in timpul lucrului, nu e nici o problema. Se descarca noua versiune si se cere restartarea aplicatiei. loaderul va incarca ultima versiune din folder.
Tot loaderul poate sterge versiunile anterioare - mai putin penultima, pentru orice eventualitate :)



Daniel Buduru
 5/16/2011 10:49:33 PM
User is offlineDumitru
172 posts
5th


Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:08:06 PM)
Probabil ca e usor dar am obosit sa caut, cum faci sa lansezi o aplicatie din alta fara sa astepte executia ei?
Ma gandesc la loader ca sa se poata inchide.
Excelenta idee!
 5/17/2011 12:35:14 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:08:19 PM)
Exista mai multe variante:

lcExe="MyApp999.exe"

1.
RUN /N &lcExe

2.
loShell = CREATEOBJECT("wscript.shell")
loShell.Run(lcEXE,0,.f.)

3.
DECLARE INTEGER ShellExecute IN shell32;
    INTEGER hwnd,;
    STRING  lpOperation,;
    STRING  lpFile,;
    STRING  lpParameters,; 
    STRING  lpDirectory,;
    INTEGER nShowCmd
shellexecute(0,'open',lcExe','','',1)

Daniel Buduru
 5/17/2011 10:35:57 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:08:59 PM)

 Dumitru Echim wrote
Ma gandeam ca daca este un program separat poate nu-l lanseaza deloc dar din aplicatie poate verifica.
Ar fi mai bine ca de fiecare data sa starteze update-rul, daca exista o versiune noua o pune daca nu lanseaza aplicatia. Asa?
Parca nici asa nu e bine, updater-ul va sta tot timpul in memorie

Updaterul nu sta in memorie, man. Shortcut-ul aplicatiei este de fapt shortcut catre updater. Userul lanseaza updaterul de fiecare data; ala se uita pe server, descarca aplicatia, daca e cazul, apoi lanseaza in executia aplicatia cu RUN /N si isi da singur quit. Mai simplu de atat nu se poate.

Updater -> If CheckForUpdate() Then DownloadUpdate() EndIf -> launch app -> quit.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 5/17/2011 11:45:26 PM
User is offlineDumitru
172 posts
5th


Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:08:41 PM)
Acum sunt in sfarsit lamurit
Multumesc
 5/20/2011 9:31:04 PM
User is offlineDumitru
172 posts
5th


Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:09:16 PM)
Am facut asa cum mi-ati zis, merge frumos.
Intre timp am cautat cu google "self deleted", se poate dar e dificil, depinde de versiunea de windows si stiu eu ce antivirusi o mai avea omu' pe PC. Raman la varianta dvs.

Singurul moment cand antivirusul se sesizeaza este cand lansez prima data noua versiune, i se pare suspect ca un exe sa lanseze un alt exe pe care tot el l-a pus acolo (interesant este cum de urmareste chestia asta). Dar dupa ce-i spui ca e OK merge, e numai un avertisment.

M-am lovit de o treaba si vreau sa va intreb daca o rezolvati altfel.
Am nevoie uneori ca noua versiune sa execute un task o singura data, este vorba de modificari de structura, stergere fisiere vechi, alte comenzi.
Eu am inclus in pachetul de upgrade si un fisier UPversiune.EXE pe care downloader-ul il executa inaintea aplicatiei propriu-zise (noua versiune) dupa care poate sa-l stearga sau (alta varianta) ii preda controlul si se inchide, UPversiune.EXE isi face treaba si apoi da controlul aplicatiei. In acest ultim caz pot sa upgrade-z si downloader-ul pentru ca nu mai este activ si nu ma impiedica nimic sa o fac.

Logic mi se pare bine, acopera toate posibilitatile dar poate ca altii fac altfel si au trecut si testul timpului (ma refer la comenzile care trebuie executate inainte de prima lansare a noii versiuni).

 5/21/2011 12:46:21 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:09:30 PM)
Dap - este bine cum zici. Si eu am folosit aceeasi metoda.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 5/21/2011 11:18:18 AM
User is offlineDumitru
172 posts
5th


Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:09:44 PM)
Multumesc pentru feedback, ma simt de parca as avea o masina noua desi i-am schimbat numai caraoseria :)
 5/21/2011 12:22:09 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:09:57 PM)
Hehe, cunosc senzatia. Asa ma simteam si eu cand am facut chestia asta pentru prima data ;)
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 5/21/2011 12:23:23 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:10:10 PM)

Arunca un ochi si la aplicatia asta:

http://www.sweetpotatosoftware.com/spsblog/2008/02/15/VFPApplicationUpdatingMadeSimple.aspx

Iti poate da idei ;)


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 5/21/2011 4:40:08 PM
User is offlineDoru Constantin
321 posts
3rd




Re: Actualizare aplicatie
 (N/A) Modified By admin  on 5/22/2011 1:10:23 PM)
@Grig, poate ca e mai bine sa redenumesti "Subiectul" acestui thread cu ceva legat de update. E mai practic pentru cei care vor cauta pe forum o asemenea solutie.
 5/22/2011 1:11:03 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Actualizare aplicatie
 (N/A)
Done, thanks ;)
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Cod, sintaxa si comenzi  Actualizare apl...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement