Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Автоматично обновяване на програма

Featured Replies

Здравейте, някой може ли да ми каже как работи автоматично обновяване на програма. Не уча никакви програмни езици, но имам знания по VB. Направих една програма на него, но ми е нужно програмата да се обновява автоматично. Възможно ли е това да стане с VB. Предварително ви благодаря за отделеното време.

Здравейте, някой може ли да ми каже как работи автоматично обновяване на програма. Не уча никакви програмни езици, но имам знания по VB. Направих една програма на него, но ми е нужно програмата да се обновява автоматично. Възможно ли е това да стане с VB. Предварително ви благодаря за отделеното време.

http://web-tourist.net

Виж тук дали ще намериш отговор

  • Автор

Благодаря за бързия отговор, но можете ли да ме насочите къде да търся.

Редактирано от momo752 (преглед на промените)

Здравей, Предполагам обновяването ще става през интернет. Там, където ще се качва новата версия е необходимо да запишеш и един файл, например XML, в който ще указваш номер на версията. Програмата ще трябва да се свърже с интернет адреса, да свали XML файла, и да провери дали версията в него е по-нова от текущата. Ако е по-нова, ще изведе съответно съобщение на потребителя, и той вече ще прецени дали да свали, или не новата версия.

Здравей. Преди един ден завърших моята версия за автоматично обновяване на програма. Мога да ти кажа начина, който съм измислил и ти да си го приспособиш. Моето решение е писано на Java. Накратко: 1. Изпълнение на самата програма * 1. Програмата се стартира нормално * 2. След като е заредена, проверява за нова версия * 3. Ако има нова версия, затваря прозореца на програмата и отваря друг прозорец, в който има съобщение, с което потребителя се известява, че програмата трябва да се обнови * 4. След като потребителя натисне бутона „ОК“, първо се стартира втора програма (която служи за обновяване) и след това основната програма се затваря изцяло (при мен на Java функцията/ метода за затваряне на програма е System.exit(0)). 2. Програма за обновяване * 1. Изтрива старата версия * 2. Изтегля новата версия * 3. Изтрива файла с версията изтеглен от сървъра за обновяване * 4. Стартира програмата след като обновяването е приключило успешно ЗАБЕЛЕЖКИ: 1. Програмата, която ще се ползва от потребителя се стартира нормално - това съм го направил така, защото се оказа, че ако първо проверява за нова версия и се окаже, че по някаква причина сървъра за обновяване не работи, програмата изобщо няма да стартира и ще хвърли exception, който потребителя изобщо няма да види като грешка (защото съм го направил така). 2. След като се е изпълнила, програмата на заден план (т.е. втора нишка (Thread) (не знам дали има нишки във VB)) се свързва с интернет, за да провери за нова версия - на сървъра има един текстов файл, който съдържа номера на новата версия (примерно 1.1) и също така има папка със същия номер на версия (примерно 1.1), в която се съдържа новата версия. Програмата изтегля текстовия файл на компютъра, изважда съдържанието на файла, сравнява го с номера на версията на текущата версия и, ако има нова версия, представя съобщение на потребителя, че програмата трябва да се обнови. 3. След като потребителя натисне бутона „ОК“ (препоръчително е да няма други бутони, защото може да не иска да си обнови версията и да направиш така, че или бутонът „Х“ за затваряне на прозореца да го няма или да изпълнява обновяване (при мен е критично важно потребителя да си обнови до по-нова версия, затова не му оставям друга възможност, но ти ако искаш, добави си бутон за отказ)) текущата програма да се затвори и да се изпълни втора програма, която служи за обновяването. 4. Задължително си направи проверка дали размера на файла на сървъра отговаря на размера на файла, който е изтеглен. Имах интересни моменти, в които файловете се теглеха от време на време, а не винаги :D. Ами това е, което съм сътворил. Може да има и по-добри начини, но този на мен ми върши работа. Ако измисля нещо по-добро ще го споделя :). Дано да ти свърши работа или ако имате идеи за подобряване, хайде да ги развием максимално :).

Редактирано от Bfaf (преглед на промените)

Здравей. Преди един ден завърших моята версия за автоматично обновяване на програма. Мога да ти кажа начина, който съм измислил и ти да си го приспособиш. Моето решение е писано на Java.

Накратко:

1. Изпълнение на самата програма

* 1. Програмата се стартира нормално

* 2. След като е заредена, проверява за нова версия

* 3. Ако има нова версия, затваря прозореца на програмата и отваря друг прозорец, в който има съобщение, с което потребителя се известява, че програмата трябва да се обнови

* 4. След като потребителя натисне бутона „ОК", първо се стартира втора програма (която служи за обновяване) и след това основната програма се затваря изцяло (при мен на Java функцията/ метода за затваряне на програма е System.exit(0)).

2. Програма за обновяване

* 1. Изтрива старата версия

* 2. Изтегля новата версия

* 3. Изтрива файла с версията изтеглен от сървъра за обновяване

* 4. Стартира програмата след като обновяването е приключило успешно

ЗАБЕЛЕЖКИ:

1. Програмата, която ще се ползва от потребителя се стартира нормално - това съм го направил така, защото се оказа, че ако първо проверява за нова версия и се окаже, че по някаква причина сървъра за обновяване не работи, програмата изобщо няма да стартира и ще хвърли exception, който потребителя изобщо няма да види като грешка (защото съм го направил така).

2. След като се е изпълнила, програмата на заден план (т.е. втора нишка (Thread) (не знам дали има нишки във VB)) се свързва с интернет, за да провери за нова версия - на сървъра има един текстов файл, който съдържа номера на новата версия (примерно 1.1) и също така има папка със същия номер на версия (примерно 1.1), в която се съдържа новата версия. Програмата изтегля текстовия файл на компютъра, изважда съдържанието на файла, сравнява го с номера на версията на текущата версия и, ако има нова версия, представя съобщение на потребителя, че програмата трябва да се обнови.

3. След като потребителя натисне бутона „ОК" (препоръчително е да няма други бутони, защото може да не иска да си обнови версията и да направиш така, че или бутонът „Х" за затваряне на прозореца да го няма или да изпълнява обновяване (при мен е критично важно потребителя да си обнови до по-нова версия, затова не му оставям друга възможност, но ти ако искаш, добави си бутон за отказ)) текущата програма да се затвори и да се изпълни втора програма, която служи за обновяването.

4. Задължително си направи проверка дали размера на файла изтеглен от сървъра отговаря на размера на файла, който е изтеглен. Имах интересни моменти, в които файловете се теглеха от време на време, а не винаги :D.

Ами това е, което съм сътворил. Може да има и по-добри начини, но този на мен ми върши работа. Ако измисля нещо по-добро ще го споделя :). Дано да ти свърши работа или ако имате идеи за подобряване, хайде да ги развием максимално :).

Програма (Application) и нишка (Thread) са различни неша. Една програма може да има много нишки.

Защо се налага изтриване на файла с версията от сървъра ? Ами ако копие на програмата, работещо на друг компютър, иска да провери за версия ?

Редактирано от Ken (преглед на промените)

...

4. Задължително си направи проверка дали размера на файла изтеглен от сървъра отговаря на размера на файла, който е изтеглен. Имах интересни моменти, в които файловете се теглеха от време на време, а не винаги :).

...

Една дребна препоръка: проверявайте хешове, а не размер, защото нищо не се знае...

П.П. И така и така си с джава защо не пуснеш един wsdl да връща последната версия, мисля че ще е по-просто и по-джавешко :)

Програма (Application) и нишка (Thread) са различни неша. Една програма може да има много нишки.

Защо се налага изтриване на файла с версията от сървъра ? Ами ако копие на програмата, работещо на друг компютър, иска да провери за версия ?

Добре де, не съм го описал правилно. Изтрива се локалното копие на файла, който е изтеглен от сървъра.

Да, знам, че програма и нишка са две различни неща. Направено е така, че потребителя да може да ползва основата програма без проверката за нова версия да го възпрепятства. Представи си как си пускаш някоя програма и тя, за да провери за по-нова версия трябва да замръзне и примерно след 1 минута (това в най-лошия случай) да те уведоми, че няма връзка със сървъра и чак след това да ти позволи да я ползваш. Аз лично не бих издържал психически.

Една дребна препоръка: проверявайте хешове, а не размер, защото нищо не се знае...

П.П. И така и така си с джава защо не пуснеш един wsdl да връща последната версия, мисля че ще е по-просто и по-джавешко :)

Защото още се уча (уча се сам без помощ от хора, които се занимават с това от години и затова много неща ми убягват) и за пръв път чувам за wsdl и не знам как да провервам хешове. Благодаря за насоката, сега и това ще науча :).

Редактирано от Bfaf (преглед на промените)

Добре де, не съм го описал правилно. Изтрива се локалното копие на файла, който е изтеглен от сървъра.

Да, знам, че програма и нишка са две различни неща. Направено е така, че потребителя да може да ползва основата програма без проверката за нова версия да го възпрепятства. Представи си как си пускаш някоя програма и тя, за да провери за по-нова версия трябва да замръзне и примерно след 1 минута (това в най-лошия случай) да те уведоми, че няма връзка със сървъра и чак след това да ти позволи да я ползваш. Аз лично не бих издържал психически.

Просто уточнявах. Съжалявам, ако съм те засегнал !

За да не "замръзва" програмата, може да се стартира втора, трета и колкото са необходими нови нишки в нея, и в тях да се извърши някаква обработка.

Може наистина и с допълнителна програма.

Просто уточнявах. Съжалявам, ако съм те засегнал !

За да не "замръзва" програмата, може да се стартира втора, трета и колкото са необходими нови нишки в нея, и в тях да се извърши някаква обработка.

Може наистина и с допълнителна програма.

По никакъв начин не си ме засегнал, просто такъв ми е начина на изразяване :). Съжалявам, че е изглеждало така.

И да съгласен съм с всичко, което описа до сега. Иначе просто за самата проверка има втора нишка, а за самото обновяване използвам отделна програма, защото файла, който се изтегля от сървъра е със същото име като на основната програма. Ако програмата е отворена, тогава няма как да се презапише файла в реално време. По тази причина първо се стартира програмата за обновяване и веднага след това основната програма се затваря.

Редактирано от Bfaf (преглед на промените)

Защото още се уча (уча се сам без помощ от хора, които се занимават с това от години и затова много неща ми убягват) и за пръв път чувам за wsdl и не знам как да провервам хешове. Благодаря за насоката, сега и това ще науча :).

http://www.w3.org/TR/wsdl

http://www.w3schools.com/webservices/default.asp

http://www.serve.net/buz/hash.adt/java.000.html

http://www.owasp.org/index.php/Hashing_Java

И да съгласен съм с всичко, което описа до сега. Иначе просто за самата проверка има втора нишка, а за самото обновяване използвам отделна програма, защото файла, който се изтегля от сървъра е със същото име като на основната програма. Ако програмата е отворена, тогава няма как да се презапише файла в реално време. По тази причина първо се стартира програмата за обновяване и веднага след това основната програма се затваря.

Възможно е, преименуване на файла на работещата програма, от самата нея.

Например prog.exe може да се преименува на prog.exe.old, да се свали prog.exe, а при стартиране на prog.exe да се проверява дали съществува prog.exe.old и да се изтрива, ако го има.

Възможно е, преименуване на файла на работещата програма, от самата нея.

Например prog.exe може да се преименува на prog.exe.old, да се свали prog.exe, а при стартиране на prog.exe да се проверява дали съществува prog.exe.old и да се изтрива, ако го има.

Това също не го знаех. Знам, че имам още много неща да уча, но и тях ще науча, когато им дойде времето. Засега се справям с каквото знам/наложи се да знам.

Благодаря за линковете :headphones:.

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.