Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Micren
Статус: Студент
Рейтинг: 129
∙ повысить рейтинг >>
Greyss
Статус: 5-й класс
Рейтинг: 36
∙ повысить рейтинг >>
Genia007
Статус: Студент
Рейтинг: 33
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1307
от 18.02.2009, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 422, Экспертов: 50
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 160344: Здравствуйте! Нужен код простейшей программы автодозвона. Программа должна находится в трее и периодически контролировать соединение с интернетом, текущее время и если время находится в промежутке например с 1 до 3 часов, то восстанавливать с...


Вопрос № 160.344
Здравствуйте!
Нужен код простейшей программы автодозвона.
Программа должна находится в трее и периодически контролировать соединение с интернетом, текущее время и если время находится в промежутке например с 1 до 3 часов, то восстанавливать соединение при обрыве, а если с 3 до 5 то соединение восстанавливать не обязательно.
Внимание, вопрос! Как контролировать соединение, есть оно в данный момент или разорвано.
На словах объяснять не надо, нужны 10 строчек кода.
Отправлен: 12.02.2009, 23:20
Вопрос задал: Berkut55 (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Genia007
Здравствуйте, Berkut55!
Проверить есть ли активное соединение с Интернетом можно следующим образом
Код:
uses
WinInet;

{...}

function IsConnectedToInternet: Boolean;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if IsConnectedToInternet then
ShowMessage('Есть соединение.')
else
ShowMessage('Нет соединения.')
end;



Дозвониться до провайдера можно попробовать так:
Код:
function DialProvider(connection: string): boolean;
// connection - имя учетной записи
var
pars: TRasDialParams;
hRas: ThrasConn;
r: integer;
begin
hRas := 0;
strpcopy(pars.szEntryName, connection); // имя учетной записи
pars.szPhoneNumber := ''; // номеp телефона - по умолчанию
pars.szcallbacknumber := ''; // callback нам не нужен
pars.szUserName := ''; // логин - по умолчанию
pars.szPassWord := ''; // паpоль - по умолчанию
pars.szDomain := ''; // аналогично с домейном
pars.dwSize := Sizeof(TRasDialParams); // вычисляем pазмеp записи
r := rasdial(nil, nil, pars, 0, nil, hRas); // звоним
if r <> 0 then
begin // если что-то неполучилось, то
rasH angUp(hRas); // сбpасываем соединение
result := false; // ф-ция тепеpь веpнет false
end
else
result := true; // а если все ок - то true.
end;


Использовались статьи с сайта Delphi World.
---------
Помогли тебе, помоги и ты.
Ответ отправил: Genia007 (статус: Студент)
Ответ отправлен: 15.02.2009, 12:04

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 243668 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Изчерпывающий ответ! Спасибо!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное