C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
помогите с winapi, i-net functions
warlocklex
Отправлено: 15.01.2006, 15:09


Не зарегистрирован







Мне нужно написать на winapi прогу типа «подсчет и-нет трафика» по dial-up.Куча вопросов появилась:
1) Проверка отключен ли от сети функция InetIsOffline(0).Писал просто
if (InetIsOffline(0)){
FlashWindow(hwnd, TRUE);
MessageBox(hWnd, "отключен от сети ", "ВНИМАНИЕ", NULL);
return 0;}
НО КУДА ЭТО ВСТАВЛЯТ Я НЕ ПОНЯЛ,т.к этот кусок надо вставлять что бы он постоянно опрашивался. Толи в обработчик событий (switch (Message)) или сюда while(GetMessage(&msg,NULL,0,0))
2)Т.к я подключаюсь через модем то в MSDN говорят для модемов определения подключения используют функцию InternetDial. Ещё есть вот эта функция InternetCheckConnection() КАКОЙ лучше?
3) SYSTEMTIME st;
GetLocalTime (&st);
Получение локально времени. Как вывести время на окно ? т.к. GetLocalTime function does not return a value
4) как вывести на экран текст я знаю(DrawText(hDC,"текст", -1,&Rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER)wink.gif а как выводить изменяющее время или трафик с каждой секундой? Надо обрабатывать запрос каждую секунду. А как?а где?
Grigoriy
Отправлено: 15.01.2006, 18:26


Мастер участка

Группа: Участник
Сообщений: 381



Используем компонент TTimer
warlocklex
Отправлено: 15.01.2006, 22:15


Не зарегистрирован







а подробнее можно?
Grigoriy
Отправлено: 15.01.2006, 23:32


Мастер участка

Группа: Участник
Сообщений: 381



Подробно.

1. Заходим на закладку System компонентов. Там есть компонент TTimer.
2. Выбираем этот компонент и кладем на любое место основной формы.
3. Устанавливаем в свойство компонента ...->Enabled=True. (Задействовать компонент).
4. ...->Interval=1000 (интервал в миллисекундах вызова события OnTimer)
5. Пишем обработчик события ...->OnTimer. Например так:
CODE

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//..........
SYSTEMTIME st;
//..........
if (InetIsOffline(0)){
FlashWindow(hwnd, TRUE);
MessageBox(hWnd, "отключен от сети ", "ВНИМАНИЕ", NULL);
return 0;};
//..........
GetLocalTime (&st);
//..........
};

Обработчик void __fastcall TForm1::Timer1Timer(TObject *Sender)
будет вызываться периодически и автоматически через
Interval миллисекунд, но этот интервал не может фактически быть менее минимального числа миллисекунд,
равного длительности тика аппаратного таймера и может быть только кратным длительности тика.

Отредактировано Grigoriy — 15/01/2006, 23:35

Вернуться в Вопросы программирования в C++Builder