Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отклучить установленное модемное соединение, Отклучить установленное модемное соедине 
:(
    Опции темы
SP@wn
Дата 4.11.2004, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.11.2004

Репутация: нет
Всего: нет



Необходимо по таймеру отклучить модемное соединение.
Как это сделать?
PM MAIL   Вверх
bartram
Дата 14.11.2004, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата(SP @ 4.11.2004, 01:14)
Необходимо по таймеру отклучить модемное соединение.
Как это сделать?

Какое именно соединение с интернетом или с локалкой?



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Гость_SoWa
Дата 16.11.2004, 14:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Используй LineDrop (есть в Дельфи: СЕТИ) Автор- SoWa
  Вверх
SP@wn
Дата 21.11.2004, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.11.2004

Репутация: нет
Всего: нет



Цитата(bartram @ 14.11.2004, 22:40)
Цитата(SP @ 4.11.2004, 01:14)
Необходимо по таймеру отклучить модемное соединение.
Как это сделать?

Какое именно соединение с интернетом или с локалкой?

соединение с интернетом
PM MAIL   Вверх
Girder
Дата 21.11.2004, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Процедура отключения всех Dial-Up соединений.
PS:Таймер сам приделаеш... smile
Код
procedure TForm1.Button1Click(Sender: TObject);
type
PRasConn=^TRasConn;
TRasConn=record
 dwSize:DWord;
 hRasConn:THandle;
 szEntryName:array [0..20] of Char;
end;
TRasHangUp=function(hRasConn:THandle):DWord; stdcall;
TRasEnumConnections=function(RasConn:PChar; var bSize:DWord;
                             var ConnCount:DWord):DWord; stdcall;
var RasApi:Cardinal;
   RasEnumConnections:TRasEnumConnections;
   RasHangUp:TRasHangUp;
   bSize,ConnCount,j:DWord;
   RasConn:TRasConn;
   ArrRasConn,RasOld:PChar;
begin
Memo1.Clear;
RasApi:=LoadLibrary('RasApi32.dll');
if RasApi<>0 then
 begin
  RasEnumConnections:=GetProcAddress(RasApi,'RasEnumConnectionsA');
  RasHangUp:=GetProcAddress(RasApi,'RasHangUpA');
  if (Assigned(RasEnumConnections))and(Assigned(RasHangUp)) then
   begin
    bSize:=0;
    RasConn.dwSize:=SizeOf(TRasConn);
    RasEnumConnections(@RasConn,bSize,ConnCount);
    if bSize>0 then
     begin
      Memo1.Lines.Add('Активных Dial-Up соединений: '+IntToStr(ConnCount));
      try
       GetMem(ArrRasConn,bSize);
       PRasConn(ArrRasConn)^.dwSize:=SizeOf(TRasConn);
       j:=bSize;
       RasOld:=ArrRasConn;
       if RasEnumConnections(ArrRasConn,j,ConnCount)=0 then
        for j:=1 to ConnCount do
         begin
          Memo1.Lines.Add('Соединение '+IntToStr(j)+':');
          Memo1.Lines.Add(' - Дескриптор: '+IntToStr(PRasConn(ArrRasConn)^.hRasConn));
          Memo1.Lines.Add(' - Название: '+PRasConn(ArrRasConn)^.szEntryName);
          {Отключаем соединение}
          try
           while RasHangUp(PRasConn(ArrRasConn)^.hRasConn)=0 do
            begin
             Application.ProcessMessages;
             Sleep(0);
            end;
          except
          end;
          inc(PRasConn(ArrRasConn));
         end;
       FreeMem(RasOld,bSize);
      except
      end;
     end;
   end;
  FreeLibrary(RasApi);
 end;
end;


Удачи.

Это сообщение отредактировал(а) Girder - 21.11.2004, 14:56


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
SP@wn
Дата 22.11.2004, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.11.2004

Репутация: нет
Всего: нет



!!огромное спасибо!!
PM MAIL   Вверх
Akella
Дата 11.5.2005, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Код

procedure TfmSendFiles.bbDialClick(Sender: TObject);
var
   dwConnectionTypes: DWORD;
begin
  dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
  INTERNET_CONNECTION_PROXY;
  if not InternetGetConnectedState(@dwConnectionTypes, 0) then
  // not connected
    if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or
    INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) then begin
      ShowMessage('Îøèáêà äîçâîíà ê Èíòåðíåò.');
    end;//if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or
end;

procedure TfmSendFiles.HungUp;
var
 dwConnectionTypes: DWORD;
begin
  dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
  INTERNET_CONNECTION_PROXY;
  if InternetGetConnectedState(@dwConnectionTypes, 0) then begin
    StatusBar1.SimpleText := 'Îòêëþ÷åíèå';
    InternetAutodialHangup(0);
  end;
  StatusBar1.SimpleText:='Îòêëþ÷åíî';  
end;


Добавлено @ 16:41
в USES нужно поставить WinInet
PM MAIL   Вверх
Мебель
Дата 13.5.2005, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 14.11.2004
Где: Великие Луки

Репутация: нет
Всего: нет



Вещи очень полезные, мне тоже пригодится! Спасибо. smile
PM MAIL ICQ   Вверх
Cashey
Дата 21.11.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



Цитата(Akella @ 11.5.2005,  17:40)
Код

procedure TfmSendFiles.bbDialClick(Sender: TObject);
var
   dwConnectionTypes: DWORD;
begin
  dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
  INTERNET_CONNECTION_PROXY;
  if not InternetGetConnectedState(@dwConnectionTypes, 0) then
  // not connected
    if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or
    INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) then begin
      ShowMessage('Îøèáêà äîçâîíà ê Èíòåðíåò.');
    end;//if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or
end;

procedure TfmSendFiles.HungUp;
var
 dwConnectionTypes: DWORD;
begin
  dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
  INTERNET_CONNECTION_PROXY;
  if InternetGetConnectedState(@dwConnectionTypes, 0) then begin
    StatusBar1.SimpleText := 'Îòêëþ÷åíèå';
    InternetAutodialHangup(0);
  end;
  StatusBar1.SimpleText:='Îòêëþ÷åíî';  
end;

 
 Добавлено @ 16:41 
 в USES нужно поставить WinInet

Как оказывается при ADSL соединение это не работает. Даже если соединение выставленно "по умолчанию".


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Jannet
Дата 13.9.2010, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.9.2010

Репутация: нет
Всего: нет



а меня возник такой вопрос: после отключения соединения PPPoE и использования метода RasHangUp, не сбрасывается состояние порта и потом порт всегда занят. как решить данную проблему? 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1375 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.