Jak wykryć moment rozłączania z siecią i ewentualnie uniemozliwic rozłączenie lub poprzedzić rozłączenie jakąś czynnością (np. wysłaniem maila?)
...nigdzie nie moglem tego znalezc :|
Moim zdaniem nie da się, w końcu nie jesteś w stanie zatrzymać rozłączenia spowodowanego zewnętrznym czynnikiem... - nie zdążysz zrobić nic.
McAron.... A co dialera piszesz??? lub cos z tego syfu ?? nieladnie ;-p
I nie znalazles w sieci......... jaka szkoda..... poczytaj o RAS albo TAPI
nie wiem, czy sie da zapobiec rozłączeniu.
Ale funkjcę sprawdzającą, czy jest połączenie masz w FAQ, tylko
w timerze sprawdzasz, czy jest polaczenie, czy nie
Żadnego dialer'a nie pisze ;-) raczej cos w rodzaju komunikatora internetowego :-)
...wiec sie nie da :|
hmm niedobrze, nie da sie przechwycic ciagu jakichs komunikatow i albo je przepuscic albo wykonac jaks czynnosc i potem puscic
[niewinnosc] niech mi tylkok ktos powie jakich komunikatow... :p
Jakich komunikatów ? Nie sądze że w chwili wyciągnięcia wtyczki zdążysz wysłać jakiś komunikat :-)
Wysyłaj pakiety kontrolne (PING). Jeżeli np. po 1 minucie nie zostanie wysłany PONG odpinaj kolesia od serwera.
OK ...a jak wykryć moment, gdy ja rozłączam się z netem, bo chyba raczej o to mi chodziło :-)
Moze powiem tak : jest w faq taki opis
//-----------------------------
Problem: Jak sprawdzić, czy użytkownik jest w Internecie?
Autor: Adam Boduch
Data napisania: 2002-10-02 16:43:17
Odsłon: 177
Dodaj komentarz
Ta funkcja nie wszystkim działa więc....
W sekcji "Interface" dodaj nagłówek:
function InetIsOffline(Flag: Integer): Boolean; stdcall;
external 'URL.DLL';
Teraz w procedurze:
if InetIsOffline(0) then
ShowMessage('Jestem offline') else
ShowMessage('Jestem online');
//////////////-----koniec cytatu
moze teraz w timerze co sekunde bedziesz sprawdzal czy uzytkownik jest w sieci jsesli nie to costam,costam :)
p.s. ale podejrzewam ze tobie chodzi o cos takiego jak wykrywanie moementu zamykania windowsa.
dzis dodałem moje źródło licznik jeśli chcesz prześle potrzebne komponenty
Jeśli chodzi o wykrywanie połączenia, to ta metoda (z tego co wiem :-) ) u wszystkich działa:
[code]
uses Wininet;
function connected :boolean;
var Flags: DWORD;
begin
Flags:= INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_PROXY or INTERNET_CONNECTION_MODEM_BUSY;
Result := InternetGetConnectedState(@Flags, 0); // sprawdz polaczenie.
end;
[/code]
...tyle ze jak juz wykryje ze nie jestem polaczony to nie zdąże nic zrobic (np. wyslac maila) :-|
Koxak jesli masz komponenty ktore moglyby pomoc, bylbym wdzieczny [niewinnosc]
<font color="green">...tyle ze jak juz wykryje ze nie jestem polaczony to nie zdąże nic zrobic
(np. wyslac maila) </span>
No przecież próbuje ci to uświadomic.. jak kamień w wode... jak już wykrywasz rozłączenie - już w tym momencie jesteś rozłączony. Nie da się nic zrobić i koniec.... byś musiał przewidywać przyszłość :)