Как законнектиться через Dial-Up соединение по умолчанию
Интернетчик орёт на жену:
-Ты изменяла?
Жена:
-Нет, что ты! Как ты мог подумать такое
И:- Нет, лучше сразу скажи, Ты изменяла?
Ж:- Да перестань, и в мыслях не было!
И: - Если я узнаю, что ты изменила, убью!
Ж: - Скажи мне, что случилось?
И: Что-что! В Интернет войти не могу, сервер выдаёт "Ваш пароль неверный"! Не мог-же он сам измениться!(орёт) Ты изменяла?
uses
Registry, windows;
// Показать или скрыть диалог dial-upfunction DUNDialDefault(Hide: Boolean): Boolean;
var
Reg: TRegistry;
TempResult: Boolean;
name, con: string;
ASW: Integer;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\RemoteAccess', False) thenbegin
TempResult := True;
name := Reg.ReadString('Default');
endelse
tempresult := False;
Reg.Free;
if TempResult = True thenbeginif Hide = True then
ASW := SW_HIDE
else
ASW := SW_SHOWDEFAULT;
con := 'rnaui.dll,RnaDial ' + name;
ShellExecute(0, nil, 'rundll32.exe' , PChar(con), 'C:\windows\', ASW);
end;
Result := tempResult;
end;
В Win2000 и WinXP можно воспользоваться WinInet:
Для этого добавьте WinInet в секцию uses.
Затем используйте следующую команду:
Похоже, вы пытаетесь установить по умолчанию соединение Dial-Up с помощью регистра и ShellExecute. Вот разбор кода:
Функция DUNDialDefault принимает параметр Hide, который определяет, отображать или скрывать диалоговое окно Dial-Up.
Создается объект регистра (Reg) и устанавливается корневой ключ в текущий пользовательский регистр.
Открывается ключ "RemoteAccess" и читается строковая переменная "Default". Она, якобы, содержит имя по умолчанию Dial-Up соединения.
Если ключ найден, то TempResult устанавливается в True. В противном случае - в False.
Объект регистра освобождается.
Если Hide равен True, функция использует стиль SW_ HIDE для скрытия диалогового окна. В противном случае - стиль SW_SHOWDEFAULT.
Конструируется строка команды с использованием библиотеки "rnaui.dll" и имени по умолчанию Dial-Up соединения, а затем команда ShellExecute.
Функция возвращает TempResult.
Однако, есть некоторые проблемы с этим кодом:
Ключ регистра может не существовать или быть неправильным, что может привести к ошибкам.
Команда ShellExecute не является корректно форматированной, что может вызвать проблемы.
Нет обработки исключений для потенциальных ошибок.
Чтобы улучшить этот код, вы можете рассмотреть следующие предложения:
Добавьте правильную обработку ошибок с помощью блоков try-except.
Используйте более надежный способ определения имени по умолчанию Dial-Up соединения, например, проверка существования ключа регистра и типа переменной.
Формируйте команду ShellExecute правильно с использованием конкатенации строк или интерполирования.
В отношении вашего вопроса о том, как подключиться к Dial-Up по умолчанию:
В Windows 2000 и XP можно использовать WinInet для программного установления Dial-Up соединения. Вот обновленная версия кода, которая использует этот подход:
Этот код использует функцию InternetAutoDial из WinInet для установления Dial-Up соединения. Вы можете передать INTERNET_AUTODIAL_FORCE_ONLINE, чтобы заставить соединение быть онлайн.
Обратите внимание, что этот подход требует от пользователя наличия корректной конфигурации и учетных данных Dial-Up соединения. Если вы ищете более надежный способ, рассмотрите использование других библиотек или API, специально предназначенных для сетевой подключенности.
Как соединиться с Dial-Up интернетом по умолчанию: можно использовать функцию DUNDialDefault или WinInet в приложении Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.