Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 812

/ вопрос открыт /

Добрый Вечер, уважаемые эксперты!
Подскажите, пожалуйста, как реализовать программу дозвона (Dial Up) не вызывая при этом rasphone.exe (Телефонную книгу). Возможно ли это?
Или, например - при вызове rasphone.exe скрыть все окна rasphone.exe и управлять всеми функциями из своей программы.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. {{code}}
  2. unit Dial_Up;
  3.  
  4. interface
  5.  
  6. uses
  7. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  8. Dialogs,RASUnit, ShellApi, Wininet, StdCtrls, Buttons, ExtCtrls;
  9.  
  10. type
  11. TMainForm = class(TForm)
  12. ComboBox1: TComboBox;
  13. Edit1: TEdit;
  14. Edit2: TEdit;
  15. Label1: TLabel;
  16. Label2: TLabel;
  17. Label3: TLabel;
  18. Label4: TLabel;
  19. BitBtn1: TBitBtn;
  20. Timer1: TTimer;
  21. Image1: TImage;
  22. Image2: TImage;
  23. procedure FormCreate(Sender: TObject);
  24. procedure Timer1Timer(Sender: TObject);
  25. procedure BitBtn1Click(Sender: TObject);
  26. private
  27. { Private declarations }
  28. public
  29. { Public declarations }
  30. end;
  31.  
  32. var
  33. MainForm: TMainForm;
  34.  
  35. implementation
  36.  
  37. {$R *.dfm}
  38.  
  39.  
  40. function InternetConnected: Boolean;
  41. var
  42. dwConnectionTypes : DWORD;
  43. begin
  44. dwConnectionTypes :=
  45. INTERNET_CONNECTION_MODEM +
  46. INTERNET_CONNECTION_LAN +
  47. INTERNET_CONNECTION_PROXY;
  48. Result := InternetGetConnectedState(@dwConnectionTypes,0);
  49. end;
  50.  
  51. procedure TMainForm.FormCreate(Sender: TObject);
  52. var
  53. BuffSize: Integer;
  54. Entries: Integer;
  55. Entry : array[1..MaxEntries] of TRasEntryName;
  56. X, Result_ : Integer;
  57. AllEntries: TStrings;
  58. begin
  59. Timer1.Enabled := True;
  60.  
  61. ComboBox1.ItemIndex := -1;
  62. Entry[1].dwSize:=SizeOf(TRasEntryName);
  63. BuffSize:=SizeOf(TRasEntryName)*MaxEntries;
  64. Result_:=RasEnumEntries(nil, nil, @Entry[1], BuffSize, Entries);
  65. if (Result_ =0) and (Entries>0) then
  66. begin
  67. AllEntries:= TStringList.Create;
  68. for X:=1 To Entries do
  69. begin
  70. AllEntries.Add(Entry[x].szEntryName);
  71. end;
  72. ComboBox1.Items.Text := AllEntries.Text;
  73. AllEntries.Free;
  74. end;
  75. end;
  76.  
  77.  
  78. procedure TMainForm.Timer1Timer(Sender: TObject);
  79. begin
  80. Timer1.Interval := 1500;
  81. if InternetConnected = True
  82. then
  83. begin
  84. BitBtn1.Glyph.Assign(Image1.Picture.Bitmap);
  85.  
  86. end
  87. else
  88. begin
  89. BitBtn1.Glyph.Assign(Image2.Picture.Bitmap);
  90.  
  91. end;
  92. end;
  93.  
  94.  
  95. procedure TMainForm.BitBtn1Click(Sender: TObject);
  96. begin
  97. if InternetConnected = True
  98. then
  99. begin
  100. ShellExecute(Self.Handle, 'open', 'rasphone.exe', nil, nil, SW_SHOW);
  101. end
  102. else
  103. ShellExecute(Self.Handle, 'open', 'rasphone.exe', nil, nil, SW_SHOW);
  104. end;
  105. end.
  106.  
  107. {{/code}}


Kyran29 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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.
Kyran29

Kyran29 (статус: Посетитель), 14 декабря 2010, 19:49 [#1]:

Вадим К:

Этот вариант http://www.delphisources.ru/pages/faq/base/inet_connect.html
На Windows 7 не работает.
Я правильно понял, что надо юзать функции RasGetEntryDialParams, RasDial, RasGetErrorString
Вадим К

Вадим К (статус: Академик), 15 декабря 2010, 10:29 [#2]:

rasdial.exe в 7 есть на самом деле. Просто с севен поудаляли много полезных мелочей (тот же телнет чего только стоит). Почему? все просто, толстеет винда, но слишком быстро:)
поищите в системных каталогах библиотеку RasDial.dll или RasDial32.dll или что то похожее. Если есть, то можно использовать вышеприведённые функции.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.02 сек.