另一个拔号问题!(50分)

  • 主题发起人 主题发起人 pcw
  • 开始时间 开始时间
P

pcw

Unregistered / Unconfirmed
GUEST, unregistred user!
当运行"winexec('rundll32.exe rnaui.dll,RnaDial 163',9)"时如何使其自动拔号?
由如何编程等拔号连接成功后(出现握手)才执行下一语句? 谢谢!
 
在拨号网络-->菜单-->连接-->设置-->常规中将 拨号前提示信息前面的勾取消掉。
在注册表
[HKEY_CURRENT_USER/RemoteAccess]
"DialUI"=hex:0a,00,00,00
|
拨号前提示信息的选项保存在该字节中
 
procedure TForm1.Button3Click(Sender: TObject);
var
registryTemp : TRegistry;
stringsTemp : TStringlist;
intIndex : integer;
begin
registryTemp := TRegistry.Create;
stringsTemp := TStringlist.Create;
with registryTemp do
begin
RootKey := HKEY_USERS;//根键设置为HKEY_USERS
//如果存在子键.Default/RemoteAccess/Addresses
if OpenKey('.Default/RemoteAccess/Addresses',false) then
GetValueNames( stringsTemp );//读出各项目的名称,即拨号连接名称
CloseKey;
end;
//当前系统中可用的拨号连接
memo1.lines.add( '******************当前系统中有'+ IntToStr( stringsTemp.count )
+'个可用的拨号连接如下****************');
for intIndex := 0 to stringsTemp.count - 1 do
memo1.lines.add( stringsTemp.strings[ intIndex ] );

//列出Internet Explorer中设置的默认连接名称
if registryTemp.OpenKey('.Default/RemoteAccess',false) then
memo1.lines.add( 'Internet Explorer中设置的默认连接名称为' +
registryTemp.ReadString('InternetProfile') );

//释放内存
registryTemp.free;
stringsTemp.free;
end;在Delphi程序中可以用如下代码实现拨号上网:
  winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL);
  其中字符串中的最后一个参数“163”为拨号连接的名称。

  下面是一个用指定的拨号连接拨号上网的例子.
{ 用指定的拨号连接拨号上网 }
procedure TForm1.Button4Click(Sender: TObject);
var
strDialName : string;
begin
strDialName := '163';//拨号连接的名称设为163
memo1.lines.add( '******************用拨号连接'+ strDialName
+'实现拨号上网****************');
winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + strDialName),SW_SHOWNORMAL);
end;



 
我的意思是运行"winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL)"
立即拔号,不用按"确定"。由如何等待拔号连接成功后(出现握手)才执行下一语句。
 
1、先拨号一次,选中“保存密码”;
2、在拨号网络-->菜单-->连接-->设置-->常规中将 拨号前提示信息前面的勾取消掉。
拨号后提示信息前面的勾取消掉。
这样就可以立即拔号,不用按"确定"。

第二个问题:
给你一个笨方法:
拨号后启动一个定时器,让它不断通过FINDWINDOW(NIL,'连接到 我的连接')
//假定拨号名称为“我的连接”
若返回句柄大于0表示连接成功,再执行下面的语句。
我就是这样做的,应该可以的。
 
if TCP1.LocalIp = '0.0.0.0' then
下一句 (你要实现功能的代码)
 
接受答案了.
 
后退
顶部