RasAPI建立拨号失败的话怎么释放连接?(200分)

Q

qdlover

Unregistered / Unconfirmed
GUEST, unregistred user!
RasDial如果拨号失败的话,调制解调器就没有响应了
除非用RasHangUp挂断
问题是RasHangUp执行的结果要等一会儿才可以,可是程序已经跑到下面拨别的号码去了
结果是所有的都不通
如果是手工操作,等到RasHangUp反馈以后再拨号就可以了

可是程序自动执行的话怎么释放完一个拨号连接然后再执行下一个拨号连接呀?

如果能让RasHangUp执行完了再执行下面得程序就好了



 
快来人看看亚,怎么没人回答我
 
得到返回值再去拨别的号码
 
RasDial如果是同步拨号的话,直接判断RasDial的返回值然后执行RasHangUp啊
如果是异步拨号的话,就麻烦多了, 最好设个标记,在回调过程中修改这个标记
这个标记没有被赋上可以拨号的值前,下个拨号过程一直循环等待就是了。
 
现在拨号是没有问题,关键是如果拨号失败,那么怎么释放当前的连接,然后进行下一次拨号

因为现在如果拨号试成功的,那么程序执行没有问题,如果第一个拨号失败
那么下面的都失败了,而且拨号网络里面得也都不能用了,总说占用

我用
entries[1].dwSize := SizeOf(TRasConn);
bufsize := SizeOf(TRasConn) * 10;
FillChar(stat, Sizeof(TRasConnStatus), 0);
stat.dwSize := Sizeof(TRasConnStatus);
if RasEnumConnections(@entries[1], bufsize, numEntries) = 0 then
begin
if numEntries > 0 then
begin
with entries[1] do
begin
conexion:=Pointer(rasconn);
hRas := Longint(conexion);
//waitforsingleobject(RasHangUp(hras),infinite);
RasHangUp(hRas);
end;
end;
end;

手工操作是可以关掉所有的连接
可是在程序自动执行的过程中得关键问题是RasHangUp(hRas);不是执行完毕才执行下面的程序

怎么才能让RasHangUp(hRas);执行完毕再执行下面的程序哪?
 
while (RasHangUp(hRas)=0) do
Application.ProcessMessages;

我用这个也不行呀
 
拨号网络里面的连接直接运行会显示[其他程序正在使用选择的连接]

到底怎么办亚

就差这个问题解决不了啦
 
while (RasHangUp(hRas)=0) do
begin
sleep(1500);
Application.ProcessMessages;
end;

搞定,散分
 
顶部