Shell “rundll rnaui.dll,RnaDial 163”,vbNormalFocus
解决方案 »
- 求助
- Microsoft ActiveX Data Objects 2.0 没有datareport
- 该不该统计CSDN论坛用户的结贴率?
- 在VB中如何对ACCESS数据库中的日期型字段进行操作
- 拔viena (维也纳nn-实心木头人)铁公鸡的毛, 散分!
- 返回系统路径的api函数是什么?
- 如何在activereport打印结束之后关闭记录集??
- Image1.Picture = Picture1.Picture 怎么不好用?
- 为什么VB程序不能下载网页上的彩票开奖数据?大家帮帮忙啊!
- 如何在VB中申明并使用这个api函数MakeintResource,最好能给个例子!
- 有没有什么SQL语句是用来给数据库表新增一个字段的?
- 只有100分了........简单问题
http://vb.oreilly.com/news/dialup_0600.html
很长,使用了大量的API,自己慢慢看吧。
例子:
Public Sub CallPhone(Number As String, Name As String)
Dim lRes As Long
If (Trim(Number) = "") Then
Exit Sub
End If
If (MsgBox("About to call " & Trim(Name) & " at phone number " & Trim(Number) & vbCrLf & "Do it?", vbYesNo, App.Title) = vbYes) Then
lRes = tapiRequestMakeCall(Trim(Number), App.Title, Trim(Name), "")
Debug.Print Now; " CallPhone -> tapiRequestMakeCall Result code = "; lRes
End If
End Sub还有一种方法是:
PhoneNumber$ = "(123)456-7890"
Open "COM2:" For Output As #1 'or COM1
Print #1, "ATDT" & PhoneNumber$ & Chr$(13)
Close #1
当然,该方法只适合小型的应用。
要不就用api
找一下,如果能找到再告诉你。
btw 上面我提供的文章我是在 www.google.com 上以 Ras Dial-up +VB 做关键字找到的。
你也可以自己找一下。
下面是部分定义代码,完整调用你需要再给你,省得有人说给你代码是害你
'-------------------------------------------------------------------
Option ExplicitPublic hRasConn As Long '定义一个指向RAS调用的全局句柄
Public Const APINULL = 0&
Public Const UNLEN = 256
Public Const DNLEN = 15
Public Const PWLEN = 256
Public Const RAS95_MaxPhoneNumber = 128
Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxCallbackNumber = RAS95_MaxPhoneNumber
Public Type RASDIALPARAMS95
dwSize As Long
szEntryName(RAS95_MaxEntryName) As Byte
szPhoneNumber(RAS95_MaxPhoneNumber) As Byte
szCallbackNumber(RAS95_MaxCallbackNumber) As Byte
szUserName(UNLEN) As Byte
szPassword(PWLEN) As Byte
szDomain(DNLEN) As Byte
End Type
'**********************************
'* RAS调用错误代号 *
'**********************************
Public Const NOT_SUPPORTED = 120&
Public Const RASBASEERROR = 600&
Public Const SUCCESS = 0&
Public Const ERROR_PORT_ALREADY_OPEN = (RASBASEERROR + 2)
Public Const ERROR_UNKNOWN = (RASBASEERROR + 35)
Public Const ERROR_REQUEST_TIMEOUT = (RASBASEERROR + 38)
Public Const ERROR_PASSWD_EXPIRED = (RASBASEERROR + 48)
Public Const ERROR_NO_DIALIN_PERMISSION = (RASBASEERROR + 49)
Public Const ERROR_SERVER_NOT_RESPONDING = (RASBASEERROR + 50)
Public Const ERROR_UNRECOGNIZED_RESPONSE = (RASBASEERROR + 52)
Public Const ERROR_NO_RESPONSES = (RASBASEERROR + 60)
Public Const ERROR_DEVICE_NOT_READY = (RASBASEERROR + 66)
Public Const ERROR_LINE_BUSY = (RASBASEERROR + 76)
Public Const ERROR_NO_ANSWER = (RASBASEERROR + 78)
Public Const ERROR_NO_CARRIER = (RASBASEERROR + 79)
Public Const ERROR_NO_DIALTONE = (RASBASEERROR + 80)
Public Const ERROR_AUTHENTICATION_FAILURE = (RASBASEERROR + 91)
Public Const ERROR_PPP_TIMEOUT = (RASBASEERROR + 118)
'**********************************
'* RAS API 声明 *
'**********************************
Public Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (lpString1 As Any, ByVal lpString2 As String) As Long
Public Declare Function RasDial Lib "RasApi32.DLL" Alias "RasDialA" (lpRasDialExtensions As Any, ByVal lpszPhonebook As String, lprasdialparams As Any, ByVal dwNotifierType As Long, lpvNotifier As Long, lphRasConn As Long) As Long
Public Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
在98里建立一个拨号连接,然后从“拨号连接”文件夹拖到桌面,会生成一个.dun文件
用记事本打开,看到什么?
以下是我这里的dun文件内容:[Entry]
Entry_Name=ISDN
Import_Name=ISDN
Multilink=yes[Phone]
Dial_As_Is=yes
Phone_Number=163[Device]
Type=modem
Name=ISDN Line 0
Settings_Size=86
Settings=42000000560000004953444E000000000000000000000000000000000000000000000000000000004200000010000000520000000400000000000000000000000000020000000000000001000000000000000000000071[Server]
Type=PPP
SW_Compress=yes
PW_Encrypt=no
Network_Logon=no
SW_Encrypt=no
Negotiate_NetBEUI=no
Negotiate_IPX/SPX=no
Negotiate_TCP/IP=yes[TCP/IP]
Specify_IP_Address=no
Specify_Server_Address=no
IP_Header_Compress=yes
Gateway_On_Remote=yes[Multilink]
0=Line_0[Line_0]
Type=modem
Name=ISDN Line 1
Phone_Number=163然后,再试一下,把原来建好的拨号连接删除,再运行DUN文件,就会建立一个新的拨号连接
即使Modem型号不匹配,也会自动查找机器上可用的Modem
所以,生成一个文本文件,命名为.dun 再shell一下,
虽非正途,可能也算一条捷径
你的思路好啊!!!就试试,我喜欢最简单的方法
就看猫的问题能不能解决今天我很高兴啊,虽然胃一直在痛,但稍稍明白了rasapi的用法,我现在继续
http://www.csdn.net/expert/topic/495/495039.shtm
http://www.csdn.net/expert/topic/497/497597.shtm
http://www.csdn.net/expert/topic/490/490318.shtm
http://www.csdn.net/expert/topic/487/487090.shtm
http://www.csdn.net/expert/topic/497/497640.shtm