Автоматическое соединение с интернетом.


Однажды ко мне на почту пришло письмо. Человек просил помочь написать программу, которая автоматом коннектилась бы к интернету, запускала почтовую программу, скачивала почту и затем сама отключалась.

Задача вроде тривиальная, в дельфях есть какие-то компоненты на эту тему, но оказалось, что человек подключается к интернету через сотовый телефон! И, по сути дела, задача состояла в управлении GPRS - соединением.

Сразу я не нашелся что ответить, однако буквально через несколько дней мне на глаза где-то попалась статья с решением этой задачи. К статье прилагался исходник, правда, для Delphi 3, но после небольшой переделки и оптимизации всё весело зафурычило под Delphi 6. Здесь предлагаю код реализации. Весь пример состоит из двух функций: подключения и отключения. Код выглядит так:


procedure TForm1.Button1Click(Sender: TObject);
var  
  cmd, par, fil, dir: PChar; 
begin 
  // establish the connection 
  // die Verbindung aufbauen 
  // rasdial.exe entryname username password 
  cmd := 'open'; 
  fil := 'rasdial.exe'; 
  par := PChar(edtEntry.Text + ' ' + edtUser.Text + ' ' + edtPass.Text); 
  dir := 'C:';
  // call rasdial.exe with Shellexecute
  // rasdial mit Shellexecute aufrufen 
  ShellExecute(Self.Handle, cmd, fil, par, dir, SW_SHOWMINNOACTIVE);
end;


procedure TForm1.Button2Click(Sender: TObject);
var  
  cmd, par, fil, dir: PChar; 
begin 
  // disconnect the connection to the Internet 
  // Verbindung zum Internet abbrechen 
  cmd := 'open'; 
  fil := 'rasdial.exe'; 
  par := PChar(edtEntry.Text + ' /DISCONNECT'); 
  dir := 'C:'; 
  ShellExecute(Self.Handle, cmd, fil, par, dir, SW_SHOWMINNOACTIVE); 
end;

Полный исходник примера лежит здесь.