Автор | Сообщение |
|
| постоянный участник
|
Пост N: 1771
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.05.11 18:02. Заголовок: Как сделать обновление программы из инета ?
Всем привет. Нужно делать обновление программы из инета. Чтоб пользователь нажал кнопочку "Обновить программу" и она обновилась. Куда файлы обновления выкладывать ? Завести сайт и т.д ? Поделитесь опытом, как сделать.
|
|
|
Ответов - 46
, стр:
1
2
3
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1875
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.11 14:36. Заголовок: Набрел тут в поиске:..
Набрел тут в поиске: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1138 Модуль просто подключается к проекту. В секции инициализации запускаем поток. В потоке делаем следующее: Проверяем наличие bak файла, который мог остаться от предыдущего обновления и если находим - удаляем. Сравниваем дату изменения локального файла и файла, находящегося на сервере. Если необходимо обновление - копируем файл с сервера в файл "bak1". Еще один промежуточный файл используется для уменьшения вероятности нарваться на сбой в программе, когда у нас не окажется в папке файла с оригинальным названием. Переименовываем оригинал в файл с расширением "bak" . Восстанавливаем оригинал из файла "bak1" Далее - на любителя. Можно попытаться предупредить пользователя и заставить его перезапустить программу. Или оставить все, как есть. Этот способ проверен на WinNt4 и Win2000. Прав особых пользователям не надо. Самая интригующая фраза: "В секции инициализации запускаем поток. В потоке делаем следующее:" Кто пользовался потоками ? Надежно ли это для хХарбора ?
|
|
|
|
| |
Пост N: 2117
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.09.11 21:02. Заголовок: Andrey пишет: Кто п..
Andrey пишет: цитата: | Кто пользовался потоками ? Надежно ли это для хХарбора ? |
| В Harbour использую , нормально работает. Юзаю 2 потока. В одном потоке архивирую базу данных через определенные промежутки времени. Во втором....ну там целая кучка всего. Прием заявок , отправка зявок по мылу и фтп и кучка всего другого. Тема о потоках на форуме есть.
|
|
|
|
| постоянный участник
|
Пост N: 1876
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.11 21:15. Заголовок: Dima пишет: В одном..
Dima пишет: цитата: | В одном потоке архивирую базу данных через определенные промежутки времени. |
| А быстро делает архив ? В смысле, сколько вемени затрачивается через поток и напрямую ? Dima пишет: цитата: | Во втором....ну там целая кучка всего. Прием заявок , отправка зявок по мылу и фтп и кучка всего другого. |
| Не падает ничего ? Надежно работает ? Dima пишет: цитата: | Тема о потоках на форуме есть. |
| Читал. Пока мало понял. Пока разбираюсь. Спасибо большое, что эту тему развил. Может сделаешь небольшое руководство с примером по этой теме ?
|
|
|
|
| |
Пост N: 2118
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.09.11 21:49. Заголовок: Andrey пишет: А быс..
Andrey пишет: цитата: | А быстро делает архив ? В смысле, сколько вемени затрачивается через поток и напрямую ? |
| Не важно. Время одинаково. Andrey пишет: цитата: | Не падает ничего ? Надежно работает ? |
| я же вроде писал , все хорошо ;) Andrey пишет: цитата: | Может сделаешь небольшое руководство с примером по этой теме ? |
| Там же есть пример что Петр показал. Думай. Если что спрашивай.
|
|
|
|
| постоянный участник
|
Пост N: 547
Зарегистрирован: 25.12.07
|
|
Отправлено: 06.09.11 00:19. Заголовок: Andrey пишет: Самая..
Andrey пишет: цитата: | Самая интригующая фраза: "В секции инициализации запускаем поток. В потоке делаем следующее:" |
| Андрей, в приведенном описании нет особо ничего, что отдельного потока бы требовало. Это так просто в примере. Делай, просто как обычно, в основном потоке, да и все... А то "наступишь" на все что- можно наступить
|
|
|
|
| постоянный участник
|
Пост N: 1877
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.09.11 06:43. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | А то "наступишь" на все что- можно наступить |
| Ну а как же без этого !!! Нужно держаться лозунга: Мы не ищем простых путей ....
|
|
|
|
| постоянный участник
|
Пост N: 580
Зарегистрирован: 27.01.07
|
|
Отправлено: 06.09.11 08:28. Заголовок: hb_ThreadStart() - з..
hb_ThreadStart() - запускает поток. В сборке Harbour есть примеры. Про xX не скажу, не знаю.
|
|
|
|
| постоянный участник
|
Пост N: 2033
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.01.12 10:22. Заголовок: Сделал обновление пр..
Сделал обновление программы из Инета. Начал пробовать, и облом.... У меня нормально считывается, а в другом городе нет. Возвращает что интернет не доступен ??? Хотя скайп и TeamViewer работает. Использую функцию IsConnectedInet() возвращает .F. Код брал здесь на форуме: Скрытый текст /////////////////////////////////////////////////////////// #define DC_CALL_STD 0x0020 #define INTERNET_CONNECTION_MODEM 1 #define INTERNET_CONNECTION_LAN 2 #define INTERNET_CONNECTION_PROXY 4 #define INTERNET_RAS_INSTALLED 16 #define INTERNET_CONNECTION_OFFLINE 32 #define INTERNET_CONNECTION_CONFIGURED 64 // Flag for InternetCheckConnection #define FLAG_ICC_FORCE_CONNECTION 1 FUNCTION IsConnectedInet() local nFlags := 0 local lRet := .f. if DllCall( "WININET.DLL", DC_CALL_STD, "InternetGetConnectedState", @nFlags, 0 ) == 1 if DllCall( "WININET.DLL", DC_CALL_STD, "InternetCheckConnection", "http://www.google.com", FLAG_ICC_FORCE_CONNECTION, 0 ) == 1 lRet := .t. endif endif Return lRet
| Как такое может быть - один и тот же код работает по разному ?
|
|
|
|
| постоянный участник
|
Пост N: 719
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.01.12 10:27. Заголовок: Что-то блокирует дос..
Что-то блокирует достут твоей программе в интернет. К примеру, фаервол. Нужно разрешить ей доступ. Andrey пишет: цитата: | Хотя скайп и TeamViewer работает |
| Эти программы обычно принимаются фаерволами как доверенные. цитата: | Как такое может быть - один и тот же код работает по разному ? |
| Он работает одинаково. Система реагирует по-разному.
|
|
|
|
| постоянный участник
|
Пост N: 2045
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.02.12 13:32. Заголовок: Andrey пишет: Возвр..
Andrey пишет: цитата: | Возвращает что интернет не доступен ??? Хотя скайп и TeamViewer работает. |
| PSP пишет: цитата: | Он работает одинаково. Система реагирует по-разному. |
| Точно. На компе стоит ПРОКСИ. Т.е. в IE стоит: Как (или чем) можно определить что ИНЕТ работает через ПРОКСИ ? Есть ли на хХарборе такая возможность ? И как определить мне какой адрес прокси используется ?
|
|
|
|
| постоянный участник
|
Пост N: 734
Зарегистрирован: 27.01.07
|
|
Отправлено: 13.02.12 14:48. Заголовок: Andrey пишет: И как..
Andrey пишет: цитата: | И как определить мне какой адрес прокси используется ? |
| Раздел реестра [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] параметр ProxyServer
|
|
|
|
|
| постоянный участник
|
Пост N: 735
Зарегистрирован: 27.01.07
|
|
Отправлено: 13.02.12 15:05. Заголовок: Добавлю: ProxyEnable..
Добавлю: ProxyEnable в этом же разделе будет установлен в 1, если прокси используется.
|
|
|
|
| постоянный участник
|
Пост N: 2046
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.02.12 15:27. Заголовок: PSP пишет: Добавлю:..
PSP пишет: цитата: | Добавлю: ProxyEnable в этом же разделе будет установлен в 1, если прокси используется. |
| Спасибо БОЛЬШОЕ ! Где прокси стоит, даже скайп обновиться не смог !
|
|
|
|
| постоянный участник
|
Пост N: 2075
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.02.12 23:49. Заголовок: Народ, помогите опре..
Народ, помогите определить работоспособность кода. Может что забыл.... У меня прокси нет... Скрытый текст //-------------------------------------------------------------------- /* Registry related values Winreg.ch */ /* Help for xHarbour */ #define HKEY_LOCAL_MACHINE 0 #define HKEY_CLASSES_ROOT 1 #define HKEY_CURRENT_USER 2 #define HKEY_CURRENT_CONFIG 3 //#define HKEY_LOCAL_MACHINE 4 #define HKEY_USERS 5 FUNCTION MAIN() LOCAL lWinNT := IsWinNT(), nRet, cError := "" SETCOLOR("15/1") CLEAR SCREEN ? " Test functions ProxyServer for [x]Harbour." ? " Verchenko A.G., Dmitrov an e-mail:verchenkoag@gmail.com is written" ? PADC("",70,"-") ? " " + Version() + " - " + hb_compiler() ? ; ? cError := "" nRet := MyIsProxyServer(@cError) IF nRet == 1 ? "Proxy - Yes ! Adres - "+cError IEXPLORER("http://www.xharbour.org") ELSEIF nRet == 0 ? "Proxy - Not...." ELSE ? "Proxy - error: "+cError ENDIF ? wait RETURN NIL //-------------------------------------------------------------------- Function MyIsProxyServer(cError) LOCAL lWinNT := IsWinNT(), nFlag, nRet := 0, cKey IF lWinNT nFlag := GetRegistry( HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable" ) IF nFlag > 0 cKey := GetRegistry( HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer" ) IF cKey == NIL cError := "Not key ProxyServer for " + OS_MyVersion() nRet := -2 ELSE cError := Ltrim( cKey ) nRet := 1 ENDIF ELSE cError := "0" nRet := 0 ENDIF ELSE cError := "None ProxyServer for " + OS_MyVersion() nRet := -1 ENDIF return nRet //-------------------------------------------------------------------- Function IsWinNT() RETURN OS_ISWINNT() //-------------------------------------------------------------------- FUNCTION OS_MyVersion() // Какая Платформа Windows LOCAL cRet := "None" IF OS_ISWIN95() ; cRet := "WIN95" ; ENDIF IF OS_ISWIN98() ; cRet := "WIN98" ; ENDIF IF OS_ISWINME() ; cRet := "WINME" ; ENDIF IF OS_ISWINNT351() ; cRet := "NT351" ; ENDIF IF OS_ISWINNT4() ; cRet := "NT4" ; ENDIF IF OS_ISWIN2000() ; cRet := "WIN2000" ; ENDIF IF OS_ISWINXP() ; cRet := "WINXP" ; ENDIF IF OS_ISWIN2003() ; cRet := "WIN2003" ; ENDIF IF OS_ISWINVISTA() ; cRet := "VISTA" ; ENDIF //IF OS_ISWIN7() ; cRet := "WIN7" ; ENDIF // Not function for xHarbor 1.0.0 RETURN cRet //-------------------------------------------------------------------- STATIC PROCEDURE IEXPLORER(cURL) LOCAL oIE TRY oIE := GetActiveObject( "InternetExplorer.Application" ) CATCH TRY oIE := CreateObject( "InternetExplorer.Application" ) CATCH Alert( "ERROR! IExplorer not avialable. [" + Ole2TxtError()+ "]" ) RETURN END END oIE:Visible := .T. oIE:Navigate( cURL ) RETURN //--------------------------------------------------------------------
|
|
|
|
|
| |
Пост N: 48
Зарегистрирован: 16.12.08
|
|
Отправлено: 28.02.12 14:41. Заголовок: Привет Андрей. У ме..
Привет Андрей. У меня работает. Проверяет активен ли прокси, если да, то запускает експлорер. Кажется всё гуд :)
|
|
|
|
| постоянный участник
|
Пост N: 2077
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.02.12 20:29. Заголовок: santy Спасибо большо..
santy Спасибо большое ! Значит работает...
|
|
|
|
| постоянный участник
|
Пост N: 3223
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.02.14 00:52. Заголовок: PSP пишет: Добавлю:..
PSP пишет: цитата: | Добавлю: ProxyEnable в этом же разделе будет установлен в 1, если прокси используется. |
| Поставили сервер Windows 2008 R2 Server 6.01.7601 Service Pack 1 У меня задача стала падать при обновлении... Переменная nFlag - неопределенная - т.е. возвращает U nFlag := GetRegistry( HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable" ) Что делать ? Как еще 2012 сервер в будущем определяться будет ?
|
|
|
|
| |
Пост N: 3800
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.02.14 11:27. Заголовок: Andrey Руками в рее..
Andrey Руками в реестре смотрел на предмет этой ветки и параметра ?
|
|
|
|
| постоянный участник
|
Пост N: 3224
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.02.14 14:44. Заголовок: Dima пишет: Руками ..
Dima пишет: цитата: | Руками в реестре смотрел на предмет этой ветки и параметра ? |
| Да нет такого параметра: Скорей всего, изменения в реестре произошли. Т.е. по умолчанию, если не настраивался ПРОКСИ, то и параметров никаких нет.
|
|
|
|
| |
Пост N: 3801
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.02.14 14:54. Заголовок: Andrey Тогда гуглит..
Andrey Тогда гуглить надо скажем такой строкой Windows 2008 R2 Server ProxyEnable и выяснить куда мелкие его заныкали
|
|
|
Ответов - 46
, стр:
1
2
3
All
[только новые]
|
|