| 
| 
 | Вопрос # 4 812/ вопрос открыт / | 
 |  Добрый Вечер, уважаемые эксперты!Подскажите, пожалуйста,  как реализовать программу дозвона (Dial Up) не вызывая при этом rasphone.exe (Телефонную книгу). Возможно ли это?
 Или, например - при вызове rasphone.exe скрыть все окна  rasphone.exe  и управлять всеми функциями из своей программы.
 К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) Приложение:Переключить в обычный режим  {{code}} unit Dial_Up; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs,RASUnit, ShellApi, Wininet, StdCtrls, Buttons, ExtCtrls; type  TMainForm = class(TForm)    ComboBox1: TComboBox;    Edit1: TEdit;    Edit2: TEdit;    Label1: TLabel;    Label2: TLabel;    Label3: TLabel;    Label4: TLabel;    BitBtn1: TBitBtn;    Timer1: TTimer;    Image1: TImage;    Image2: TImage;    procedure FormCreate(Sender: TObject);    procedure Timer1Timer(Sender: TObject);    procedure BitBtn1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end; var  MainForm: TMainForm; implementation {$R *.dfm}  function InternetConnected: Boolean;vardwConnectionTypes : DWORD;begindwConnectionTypes :=INTERNET_CONNECTION_MODEM +INTERNET_CONNECTION_LAN +INTERNET_CONNECTION_PROXY;Result := InternetGetConnectedState(@dwConnectionTypes,0);end; procedure TMainForm.FormCreate(Sender: TObject);varBuffSize: Integer;Entries: Integer;Entry : array[1..MaxEntries] of TRasEntryName;X, Result_ : Integer;AllEntries: TStrings;beginTimer1.Enabled := True; ComboBox1.ItemIndex := -1;Entry[1].dwSize:=SizeOf(TRasEntryName);BuffSize:=SizeOf(TRasEntryName)*MaxEntries;Result_:=RasEnumEntries(nil, nil, @Entry[1], BuffSize, Entries);if (Result_ =0) and (Entries>0) thenbeginAllEntries:= TStringList.Create;for X:=1 To Entries dobeginAllEntries.Add(Entry[x].szEntryName);end;ComboBox1.Items.Text := AllEntries.Text;AllEntries.Free;end;end;  procedure TMainForm.Timer1Timer(Sender: TObject);beginTimer1.Interval := 1500;if InternetConnected = TruethenbeginBitBtn1.Glyph.Assign(Image1.Picture.Bitmap); endelsebeginBitBtn1.Glyph.Assign(Image2.Picture.Bitmap); end;end;  procedure TMainForm.BitBtn1Click(Sender: TObject);beginif InternetConnected = TruethenbeginShellExecute(Self.Handle, 'open', 'rasphone.exe', nil, nil, SW_SHOW);endelse ShellExecute(Self.Handle, 'open', 'rasphone.exe', nil, nil, SW_SHOW);end;end. {{/code}}
|  |   Вопрос задал: Kyran29 (статус: Посетитель)Вопрос отправлен: 12 декабря 2010, 23:10
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Kyran29!Можно, если использовать rasdial.
 Читаем раз http://www.delphisources.ru/pages/faq/base/ras_api_for_beginners.html
 и читаем два http://www.delphisources.ru/pages/faq/base/inet_connect.html
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 13 декабря 2010, 11:26
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 15 декабря 2010, 10:29; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 15 декабря 2010, 10:29 [#2]:rasdial.exe в 7 есть на самом деле. Просто с севен поудаляли много полезных мелочей (тот же телнет чего только стоит). Почему? все просто, толстеет винда, но слишком быстро  поищите в системных каталогах библиотеку RasDial.dll или RasDial32.dll или что то похожее. Если есть, то можно использовать вышеприведённые функции.
 Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |