axel234:
A miałbyś może gdzieś w zanadrzu jakiś inny sposób na wywołanie zapory systemowej niż ten nieszczęsny ftp?
Nie no nie mam, bo nie jest to konieczne. Tak jak napisałem w swoim poprzednim poście, ręczne wywoływanie systemowego okna dialogowego jest zbędne, bo użytkownik może posiadać inny firewall, do którego API nie istnieje. Według mnie zabezpieczenie jednego przypadku spośród stu nie ma żadnego sensu i szkoda czasu na jego implementację.
Co więcej, dodanie aplikacji do listy wyjątków zapory systemowej to zadanie dla instalatora. W instalatorze oznajmia się użytkownikowi, że kreator może w ramach swojej pracy (instalacji) dodać wpis do listy wyjątków - z reguły jest to checkbox z odpowiednim tytułem, domyślnie zaznaczony. Instalatory zawsze posiadają podwyższone uprawnienia, więc mogą wykonać taką rejestrację. Natomiast aplikacja docelowa nie powinna uruchamiać się domyślnie z prawiami admina - wyjątkiem są aplikacje, które bez tych uprawnień nie mogą funkcjonować. W takim przypadku należy zabezpieczyć kod, tak aby prawidłowo reagował na brak połączenia z serwerem, a podzbiorem zbioru błędów związanych z komunikacją są właśnie blokady po stronie systemu operacyjnego i aplikacji firm trzecich (antywirusy, zapory itd.).
Tak więc Twoim obowiązkiem @axel234 jest napisanie kodu w taki sposób, aby zawsze działał prawidłowo, bez względu na to czy powodem braku połączenia z serwerem jest uterka fizyczna, czy system operacyjny, czy inne aplikacje (to masz zrobione). Drugim zabezpieczeniem jakie powinieneś zaimplementować jest mechanizm synchronizacji kodu pobierania i tu standardowym zabiegiem jest wątek poboczny (tego brakuje).