Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Включение-отключение сетевого адаптера [D6, D7, WinXP]


Olejek ©   (2005-07-09 21:11:00) 

Никак не могу найти ответ на свой вопрос - как отключить и включить сетевой адаптер (для переинициализации новых сетевых настроек), а соответственно и соединение с локальной сетью? Перерыл кучу форумов - никто не отвечает! Мозги кипят уже, ну хоть кто-нибудь подскажите рабочий вариант!!!


Alex Konshin   (2005-07-26 12:09:00) [1]

Нужно ждать по MsgWaitForMultipleObjects и в случае прихода сообщения уже выдавать ProcessMessages. Все это в цикле с пересчетом интервала на каждой итерации.
Пример использования MsgWait* есть, насколько я помню, где-то в реализации TThread.


Ботвин Дмитрий   (2005-07-26 10:19:00) [2]

BiN ©   (26.07.05 10:13) [9]

Это код не приводит к замиранию приложения. Slepp-останавливает
выполнение приложения. Вот это мне и не нравится. А чем это
хуже, я так из твоего ответа и не понял :-)))


BiN   (2005-07-26 10:13:00) [3]

Ботвин Дмитрий   (26.07.05 09:16) [8]

Чем? ;-)))


Она проц нагружает неслабо. (c)

И, к тому же, Sleep(1, true) - просто не имеет смысла, т.к.
1) в твоем коде не видно использование очереди пользовательских APC
2) при таком интервале ее действие аналогично работе функции SwitchToThread.


Ботвин Дмитрий   (2005-07-26 09:16:00) [4]

BiN ©   (26.07.05 09:10) [7]

Чем? ;-)))


BiN   (2005-07-26 09:10:00) [5]

Ботвин Дмитрий   (26.07.05 07:39) [5]

Sleep не самый лучший вариант. Она проц нагружает неслабо. Лучше
такой вариант:
...


Такой вариант намного хуже.


Lamer@fools.ua   (2005-07-26 08:43:00) [6]

>> Ботвин Дмитрий   (26.07.05 07:39) [5]

> Sleep не самый лучший вариант. Она проц нагружает неслабо.

Неужели?


Ботвин Дмитрий   (2005-07-26 07:39:00) [7]

Sleep не самый лучший вариант. Она проц нагружает неслабо. Лучше
такой вариант:

procedure Delay(Value: Cardinal);
var
 F, N: Cardinal;
begin
 N := 0;
 while N <= (Value div 10) do
 begin
   SleepEx(1, True);
   Application.ProcessMessages;
   Inc(N);
 end;
 F := GetTickCount;
 repeat
   Application.ProcessMessages;
   N := GetTickCount;
 until (N - F >= (Value mod 10)) or (N < F);
end;

Пример использования:
Delay(1000) - задержка на 1с.


Olejek   (2005-07-25 19:56:00) [8]

Кстати, как кроме Sleep() можно выждать простую паузу в N-секунд?WaitForSingleObject-у ждать-то нечего!


Olejek   (2005-07-25 19:47:00) [9]

И на этом спасибо. Пришлось делать через "devcon". Не нравится, а  иначе пока не выходит :-(


kivadim   (2005-07-21 17:14:00) [10]

вот сам долго искал, но добрые люди подсказали:
http://forum.sources.ru/index.php?showtopic=93106&st=0&#entry698892


simpson   (2005-07-09 22:11:00) [11]

Смотри в MSDN ф-и GetIfTable и SetIfEntry.


Наверх

Титульная страница Поиск, карта сайта Написать письмо