Hvala lepo! Puno znaci.
Uvek taze FrontEnd
Zaključano
Zakačeno
Pozdrav,
Vec sam postavio temu u Windows Desktop forumu u nadi da mi neko pomogne.
koristim ovaj Kod, i prilikom aktiviranja kopira fajl iz foldera na Desktop usera.
Isto tako moze da se modifikuje da kopira sa servera na Desktop usera.
Sada sam naisao na problem jer koriste Windows CAL-ove (Client Access License) preko Remote Desktopa. Kada pokrenem .bat on pokusava sa servera da kopira na lokalni Desktop umesto na CAL username desktop.
Hvala unapred.
Vec sam postavio temu u Windows Desktop forumu u nadi da mi neko pomogne.
Code:
COPY C:\Folder\Fajl.accde C:\Users\%username%\Desktop\Fajl.accde
COPY C:\Folder\Fajl.accde C:\Users\%username%\Desktop\Fajl.accde
koristim ovaj Kod, i prilikom aktiviranja kopira fajl iz foldera na Desktop usera.
Isto tako moze da se modifikuje da kopira sa servera na Desktop usera.
Sada sam naisao na problem jer koriste Windows CAL-ove (Client Access License) preko Remote Desktopa. Kada pokrenem .bat on pokusava sa servera da kopira na lokalni Desktop umesto na CAL username desktop.
Hvala unapred.
Nije ti jasno pitanje. Zašto bi bila potrebna RDP konekcija za kopiranje fajla na Desktop usera? Za to je potreban običan network share, na pr:
Inače, kroz Remote Desktop je moguće kopirati fajl sa servera na lokalni disk na sledeći način:
I to pod uslovom da je za RDP konekciju, u Local Resources, čekiran lokalni disk drive na koji se kopira fajl. Ne možeš koristiti %username% u takvoj putanji, pošto je to environment variabla koja važi na lokalnom, tj. klijentskom računaru, i remote server ne ume da je pročita.
Doduše, mislim da je logično i ispravno da aplikacija ima svoj, isti folder na svakom klijentu ponaosob, na pr c:\Folder. Koji će đavo na Desktopu? :)
Izvinjavam se na offtopicu.
Pozdrav!
Code:
XCOPY "\\Server\share\Fajl.accde" "C:\Users\%username%\Desktop" /E /Y .
XCOPY "\\Server\share\Fajl.accde" "C:\Users\%username%\Desktop" /E /Y .
Inače, kroz Remote Desktop je moguće kopirati fajl sa servera na lokalni disk na sledeći način:
Code:
COPY C:\Folder\Fajl.accde \\tsclient\C:\Folder
COPY C:\Folder\Fajl.accde \\tsclient\C:\Folder
I to pod uslovom da je za RDP konekciju, u Local Resources, čekiran lokalni disk drive na koji se kopira fajl. Ne možeš koristiti %username% u takvoj putanji, pošto je to environment variabla koja važi na lokalnom, tj. klijentskom računaru, i remote server ne ume da je pročita.
Doduše, mislim da je logično i ispravno da aplikacija ima svoj, isti folder na svakom klijentu ponaosob, na pr c:\Folder. Koji će đavo na Desktopu? :)
Izvinjavam se na offtopicu.
Pozdrav!
Mozda nisam dobro formulisao. Ne treba mi kopiranje sa servera, niti kopiranje sa RD-a na lokalni desktop.
Treba mi kopiranje sa RD-a na RD User-ov Desktop na CAL-u.
Kada se koriste CAL-ovi na RD-u svi fajlovi sa Servera su dostupni svakom Useru osim tudjeg Desktop CAL-a(usera). Svaki CAL (user) ima svoj unikatni Desktop na RD-u. Znaci, svaki User moze da pristupi samo svom CAL Desktop-u na Serveru.
Recimo ovo radi u lokalu savrseno, moze isto tako da radi preko servera kao sto si gore naveo.
Ali meni je potrebno da radi u varijanti gore navedenog.
Treba mi kopiranje sa RD-a na RD User-ov Desktop na CAL-u.
Kada se koriste CAL-ovi na RD-u svi fajlovi sa Servera su dostupni svakom Useru osim tudjeg Desktop CAL-a(usera). Svaki CAL (user) ima svoj unikatni Desktop na RD-u. Znaci, svaki User moze da pristupi samo svom CAL Desktop-u na Serveru.
Code:
@ECHO OFF
ECHO *****************
ECHO *FIRMA*
ECHO *****************
ECHO *
ECHO *
ECHO Azuriranje je u toku.
COPY C:\Folder\FrontEnd.accdb C:\Users\%username%\Desktop\FrontEnd.accdb
ECHO *
ECHO *
ECHO *
ECHO *Azuriranje je uspesno zavrseno.
ECHO *
ECHO *
ECHO *
ECHO *Ukoliko zelite da pokrenete novu verziju pritisnite bilo koje dugme.
ECHO *U suprotnom zatvorite prozor.
PAUSE
ECHO *
ECHO *
ECHO *
ECHO *Pokretanje nove verzije.*
START C:\Users\%username%\Desktop\FrontEnd.accdb
EXIT
@ECHO OFF
ECHO *****************
ECHO *FIRMA*
ECHO *****************
ECHO *
ECHO *
ECHO Azuriranje je u toku.
COPY C:\Folder\FrontEnd.accdb C:\Users\%username%\Desktop\FrontEnd.accdb
ECHO *
ECHO *
ECHO *
ECHO *Azuriranje je uspesno zavrseno.
ECHO *
ECHO *
ECHO *
ECHO *Ukoliko zelite da pokrenete novu verziju pritisnite bilo koje dugme.
ECHO *U suprotnom zatvorite prozor.
PAUSE
ECHO *
ECHO *
ECHO *
ECHO *Pokretanje nove verzije.*
START C:\Users\%username%\Desktop\FrontEnd.accdb
EXIT
Recimo ovo radi u lokalu savrseno, moze isto tako da radi preko servera kao sto si gore naveo.
Ali meni je potrebno da radi u varijanti gore navedenog.
OK. Moralo bi onda da radi ovako:
Najbolje je da skript kopira fajl sa deljenog (Share) foldera kome svi useri imaju pristup.
Code:
xcopy "\\Server\Share\FrontEnd.accdb" "%userprofile%\desktop" /Y
xcopy "\\Server\Share\FrontEnd.accdb" "%userprofile%\desktop" /Y
Najbolje je da skript kopira fajl sa deljenog (Share) foldera kome svi useri imaju pristup.
izmenjeno 1 put, poslednji put TiestoX 07.01.2012. u 10:25
Izmene poruke
- TiestoX07.01.2012. u 10:25zapis iz teksta poruke
Hvala smal. Izgleda mi logicno. Cim budem bio u mogucnosti da probam, javljam ti.
EDIT: Ima li neke razlike izmedju %userprofile% i %username%?
EDIT: Ima li neke razlike izmedju %userprofile% i %username%?
Pa ima utoliko što %username% označava samo naziv foldera u kome je smešten user profil, bez putanje, a %userprofile% u sebi sadrži i celu putanju.
Na pr. na WinXp i Server 2003, putanja do User Dektop foldera je c:\Documents and Settings\User\Desktop\, a na Win7 i Server 2008 je c:\Users\User\Desktop\.
Korišćenjem variable %userprofile% izbegavaš brigu o verziji operativnog sistema koji tera korisnik.
Na pr. na WinXp i Server 2003, putanja do User Dektop foldera je c:\Documents and Settings\User\Desktop\, a na Win7 i Server 2008 je c:\Users\User\Desktop\.
Korišćenjem variable %userprofile% izbegavaš brigu o verziji operativnog sistema koji tera korisnik.
Hvala.
@TiestoX: Molim te da prilozis konacno resenje, sa %usernam% ili %userprofile%. Rado bih to resenje ubacio u bazu znanja. Daj nam ako mozes kod i objasnjenje kako s ekoristi u jednom postu, pa cu taj post prebaciti u bazu znanja. Ovo je vrlo korisno.
Hvala
Hvala
Pre svega Smal hvala puno, neverovatno mnogo si mi olaksao dodavanje nove verzije. S obzirom da smo iz istog grada, imas pice. : )
Pozdrav Zidar, rado cu to uraditi za 2-3 dana cim nadjem slobodnog vremena.
Pozdrav Zidar, rado cu to uraditi za 2-3 dana cim nadjem slobodnog vremena.
- SLEDEĆI PRIMER DEMONSTRIRA TAKO REĆI UPDATE ZA FRONTEND -
1. Svi USERI moraju imati dozvolu da kopiraju iz foldera gde se nalazi BackEnd inače ovaj primer neće funkcionisati
2. Pravimo .bat fajl koji pozivamo prilikom pokretanja FrontEnd-a
Kako pravimo .bat fajl?
Kreiramo “Preuzmi.txt” dokument iskopiramo dole navedeni KOD i promenimo .txt ekstenziju u .bat (Preuzmi.bat)
PRIMER I
Ukoliko useri imaju kopiju FrontEnd-a na svom Desktopu Lokalnog računara, a BackEnd na Serveru onda .bat fajl izgleda ovako:
Šta radi gore navedeni KOD?
Kopira FrontEnd sa Servera na Desktop usera, zatim pokreće iskopirani FrontEnd (novu verziju).
PRIMER II
Ukoliko useri koriste Windows CAL’s preko Remote Desktop-a onda .bat fajl izgleda ovako:
Šta radi gore navedeni KOD?
Kopira FrontEnd iz foldera Servera na Desktop CAL-a na Serveru, zatim pokreće iskopirani FrontEnd (novu verziju) sa Desktopa CAL-a.
3. Kreiranje i provera verzije
- Kreiramo Tabelu u FrontEnd-u pod nazivom “TrenutnaVerzija” i polje “Verzija” tip polja Number.
- Kreiramo Tabelu u BackEnd-u pod nazivom “NovaVerzija” i polje “Verzija” tip polja Number.
- Prilikom pokretanja FrontEnd-a mora postojati StartUp Forma (kod mene je to LogIn, verujem i kod većine).
U OnLoad Event-u kopiramo KOD:
Za PRIMER I (pogledaj stavku 2):
Za PRIMER II (pogledaj stavku 2):
Šta radi gore navedeni KOD?
Proverava da li je Trenutna verzija veća ili manja od Nove verzije.
Ukoliko je broj u polju “Verzija” tabele “NovaVerzija” veći od broja u polju “Verzija” tabele “TrenutnaVerzija”, onda se pokreće “Preuzmi.bat” fajl i izvršava KOD u njemu. ( stavka 2)
4. Sprovodjenje u delo
- Kopiramo BackEnd.accde, FrontEnd.accde, Preuzmi.bat u sharovani folder
- Povezujemo FrontEnd.accde sa BackEnd.accde
- Upisujemo u poljima tabela TrenutnaVerzija i NovaVerzija broj 1 (pošto ne želimo update upravo postavljene verzije)
- Ukoliko ni jedan User nema FrontEnd.accde na svom Desktopu, pokrećemo na svakom računaru ponaosob Preuzmi.bat
- Za svaki sledeći update, obrisati FrontEnd prethodne verzije sa servera, iskopirati novu verziju, povezati i upisati u polju tabele NovaVerzija veći broj nego što je broj u tabeli TrenutnaVerzija trenutnog (starog) FrontEnd-a na Desktopu usera
- Nova verzija FrontEnda mora imati u tabeli TrenutnaVerzija isti broj kao što je u tabeli NovaVerzija da ne bi pri svakom pokretanju programa pitalo da li hoćemo da preuzmemo novu verziju
Ja sam napravio admin panel u kome mogu samo ja da pristupim i otvara mi dve forme u kojima menjam tabele TrenutnaVerzija i NovaVerzija da ne bih morao da pristupam tabelama direktno posto koristim DisableShiftKey i BackEnd ima Password.
1. Svi USERI moraju imati dozvolu da kopiraju iz foldera gde se nalazi BackEnd inače ovaj primer neće funkcionisati
2. Pravimo .bat fajl koji pozivamo prilikom pokretanja FrontEnd-a
Kako pravimo .bat fajl?
Kreiramo “Preuzmi.txt” dokument iskopiramo dole navedeni KOD i promenimo .txt ekstenziju u .bat (Preuzmi.bat)
PRIMER I
Ukoliko useri imaju kopiju FrontEnd-a na svom Desktopu Lokalnog računara, a BackEnd na Serveru onda .bat fajl izgleda ovako:
Code:
@ECHO OFF
ECHO *************
ECHO *NAZIV FIRME*
ECHO *************
ECHO *
ECHO *
ECHO Azuriranje je u toku.
COPY \\Naziv-ili-IP-Servera\NazivShareovanogFoldera\FrontEnd.accde C:\Users\%username%\Desktop\FrontEnd.accde
ECHO *
ECHO *
ECHO *
ECHO *Azuriranje je uspesno zavrseno.
ECHO *
ECHO *
ECHO *
ECHO *Ukoliko zelite da pokrenete novu verziju pritisnite bilo koje dugme.
ECHO *U suprotnom zatvorite prozor.
PAUSE
ECHO *
ECHO *
ECHO *
ECHO *Pokretanje nove verzije.*
START C:\Users\%username%\Desktop\FrontEnd.accde
EXIT
@ECHO OFF
ECHO *************
ECHO *NAZIV FIRME*
ECHO *************
ECHO *
ECHO *
ECHO Azuriranje je u toku.
COPY \\Naziv-ili-IP-Servera\NazivShareovanogFoldera\FrontEnd.accde C:\Users\%username%\Desktop\FrontEnd.accde
ECHO *
ECHO *
ECHO *
ECHO *Azuriranje je uspesno zavrseno.
ECHO *
ECHO *
ECHO *
ECHO *Ukoliko zelite da pokrenete novu verziju pritisnite bilo koje dugme.
ECHO *U suprotnom zatvorite prozor.
PAUSE
ECHO *
ECHO *
ECHO *
ECHO *Pokretanje nove verzije.*
START C:\Users\%username%\Desktop\FrontEnd.accde
EXIT
Šta radi gore navedeni KOD?
Kopira FrontEnd sa Servera na Desktop usera, zatim pokreće iskopirani FrontEnd (novu verziju).
PRIMER II
Ukoliko useri koriste Windows CAL’s preko Remote Desktop-a onda .bat fajl izgleda ovako:
Code:
@ECHO OFF
ECHO *************
ECHO *NAZIV FIRME*
ECHO *************
ECHO *
ECHO *
ECHO Azuriranje je u toku.
COPY C:\NazivShareovanogFoldera\FrontEnd.accde %userprofile%\desktop\FrontEnd.accde
ECHO *
ECHO *
ECHO *
ECHO *Azuriranje je uspesno zavrseno.
ECHO *
ECHO *
ECHO *
ECHO *Ukoliko zelite da pokrenete novu verziju pritisnite bilo koje dugme.
ECHO *U suprotnom zatvorite prozor.
PAUSE
ECHO *
ECHO *
ECHO *
ECHO *Pokretanje nove verzije.*
START %userprofile%\desktop\FrontEnd.accde
EXIT
@ECHO OFF
ECHO *************
ECHO *NAZIV FIRME*
ECHO *************
ECHO *
ECHO *
ECHO Azuriranje je u toku.
COPY C:\NazivShareovanogFoldera\FrontEnd.accde %userprofile%\desktop\FrontEnd.accde
ECHO *
ECHO *
ECHO *
ECHO *Azuriranje je uspesno zavrseno.
ECHO *
ECHO *
ECHO *
ECHO *Ukoliko zelite da pokrenete novu verziju pritisnite bilo koje dugme.
ECHO *U suprotnom zatvorite prozor.
PAUSE
ECHO *
ECHO *
ECHO *
ECHO *Pokretanje nove verzije.*
START %userprofile%\desktop\FrontEnd.accde
EXIT
Šta radi gore navedeni KOD?
Kopira FrontEnd iz foldera Servera na Desktop CAL-a na Serveru, zatim pokreće iskopirani FrontEnd (novu verziju) sa Desktopa CAL-a.
3. Kreiranje i provera verzije
- Kreiramo Tabelu u FrontEnd-u pod nazivom “TrenutnaVerzija” i polje “Verzija” tip polja Number.
- Kreiramo Tabelu u BackEnd-u pod nazivom “NovaVerzija” i polje “Verzija” tip polja Number.
- Prilikom pokretanja FrontEnd-a mora postojati StartUp Forma (kod mene je to LogIn, verujem i kod većine).
U OnLoad Event-u kopiramo KOD:
Za PRIMER I (pogledaj stavku 2):
Code:
Dim strTV As String
Dim strNV As String
strTV = DLookup("Verzija", "TrenutnaVerzija")
strNV = DLookup("Verzija", "NovaVerzija")
If strTV < strNV Then
If MsgBox("Da li želite da preuzmete novu verziju?", vbYesNo, "Preuzimanje nove verzije") = vbYes Then
Call Shell(Environ$("COMSPEC") & " /c \\Naziv-ili-IP-Servera\NazivShareovanogFoldera\Preuzmi.bat ", vbNormalFocus)
DoCmd.Quit
Else
DoCmd.Quit
End If
End If
Dim strTV As String
Dim strNV As String
strTV = DLookup("Verzija", "TrenutnaVerzija")
strNV = DLookup("Verzija", "NovaVerzija")
If strTV < strNV Then
If MsgBox("Da li želite da preuzmete novu verziju?", vbYesNo, "Preuzimanje nove verzije") = vbYes Then
Call Shell(Environ$("COMSPEC") & " /c \\Naziv-ili-IP-Servera\NazivShareovanogFoldera\Preuzmi.bat ", vbNormalFocus)
DoCmd.Quit
Else
DoCmd.Quit
End If
End If
Za PRIMER II (pogledaj stavku 2):
Code:
Dim strNV As String
strTV = DLookup("Verzija", "TrenutnaVerzija")
strNV = DLookup("Verzija", "NovaVerzija")
If strTV < strNV Then
If MsgBox("Da li želite da preuzmete novu verziju?", vbYesNo, "Preuzimanje nove verzije") = vbYes Then
Call Shell(Environ$("COMSPEC") & " /c C:\NazivShareovanogFoldera\Preuzmi.bat ", vbNormalFocus)
DoCmd.Quit
Else
DoCmd.Quit
End If
End If
Dim strNV As String
strTV = DLookup("Verzija", "TrenutnaVerzija")
strNV = DLookup("Verzija", "NovaVerzija")
If strTV < strNV Then
If MsgBox("Da li želite da preuzmete novu verziju?", vbYesNo, "Preuzimanje nove verzije") = vbYes Then
Call Shell(Environ$("COMSPEC") & " /c C:\NazivShareovanogFoldera\Preuzmi.bat ", vbNormalFocus)
DoCmd.Quit
Else
DoCmd.Quit
End If
End If
Šta radi gore navedeni KOD?
Proverava da li je Trenutna verzija veća ili manja od Nove verzije.
Ukoliko je broj u polju “Verzija” tabele “NovaVerzija” veći od broja u polju “Verzija” tabele “TrenutnaVerzija”, onda se pokreće “Preuzmi.bat” fajl i izvršava KOD u njemu. ( stavka 2)
4. Sprovodjenje u delo
- Kopiramo BackEnd.accde, FrontEnd.accde, Preuzmi.bat u sharovani folder
- Povezujemo FrontEnd.accde sa BackEnd.accde
- Upisujemo u poljima tabela TrenutnaVerzija i NovaVerzija broj 1 (pošto ne želimo update upravo postavljene verzije)
- Ukoliko ni jedan User nema FrontEnd.accde na svom Desktopu, pokrećemo na svakom računaru ponaosob Preuzmi.bat
- Za svaki sledeći update, obrisati FrontEnd prethodne verzije sa servera, iskopirati novu verziju, povezati i upisati u polju tabele NovaVerzija veći broj nego što je broj u tabeli TrenutnaVerzija trenutnog (starog) FrontEnd-a na Desktopu usera
- Nova verzija FrontEnda mora imati u tabeli TrenutnaVerzija isti broj kao što je u tabeli NovaVerzija da ne bi pri svakom pokretanju programa pitalo da li hoćemo da preuzmemo novu verziju
Ja sam napravio admin panel u kome mogu samo ja da pristupim i otvara mi dve forme u kojima menjam tabele TrenutnaVerzija i NovaVerzija da ne bih morao da pristupam tabelama direktno posto koristim DisableShiftKey i BackEnd ima Password.
Zahvaljujem!
Tema je dodata u 'Bazu znanja' i u 'Gotovi programi korisnika foruma'
Zahvaljujem jos jednom, odlican posao.
Tema je dodata u 'Bazu znanja' i u 'Gotovi programi korisnika foruma'
Zahvaljujem jos jednom, odlican posao.
Nema na cemu, i drugi put. :)
Ja sam dosta naucio od vas, red je bio da i ja napravim nesto koliko toliko vama korisno.
Hvala i vama. :)
Ja sam dosta naucio od vas, red je bio da i ja napravim nesto koliko toliko vama korisno.
Hvala i vama. :)