rnaui.dll

mrlx 2000-02-13 01:55:00
我想自己编写一个拨号网络的应用程序,但只发现类似于rundll.exe rnaui.dll,RnaDial My Connection 的方法,请问各位高手是否有rnaui.dll的
调用说明或查看动态链接库可调用函数的工具,不胜感激!!!!!
...全文
404 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrlx 2000-03-20
  • 打赏
  • 举报
回复
Kick MS
mrlx 2000-02-18
  • 打赏
  • 举报
回复
难点:
A向B拨号,但却需要从B上启动拨号网络.
tonyhan 2000-02-18
  • 打赏
  • 举报
回复
那不就是Proxy代理服务器吗?
找找现成的例子。
active 2000-02-18
  • 打赏
  • 举报
回复
在A上装NTSERVER及远程登录服务,并使用回拨,然后用MS PROXY让B访问Internet
mrlx 2000-02-18
  • 打赏
  • 举报
回复
代理的难度不大(有现成的代码),做客户机、服务器模型也不难,但是想在B端不拨号而启动拨号网络却非常的难.因为如果是通过电话,IE只可能通过拨号网络与互连网进行连接.
tonyhan 2000-02-18
  • 打赏
  • 举报
回复
那你可以这样处理。
将B作为服务端,先将B的程序跑起来,不断检测端口是否有人连接,
如有检测该IP是否访问过,如访问过就从相应缓冲中毒去数据,传给
A,如没有就启动拨号。上网查询。
这就是代理服务的基本原理。
不过就提的程序可的你自己编。
mrlx 2000-02-17
  • 打赏
  • 举报
回复
问题的详细说明:
A、B为两台带MODEM的计算机,A可以通过局域网连接至Internet,为了使B也能上Internet并免除昂贵的花费,首先,A向B拨号,两者通过握手协议建立连接后,要在B上启动拨号网络,然后通过A上网。以上各位的解答经尝试均需要从B拨号,不知哪位大虾可解决此难题,499分感谢!!!
:)
mrlx
Eros 2000-02-16
  • 打赏
  • 举报
回复
查看dll的导出函数可以使用95/98自带的快速查看或VC中的DUMPBIN(DEPENDENCE VIEW)
Un1 2000-02-16
  • 打赏
  • 举报
回复

Global Const RASDIALEVENT = "RasDialEvent"
Global Const WM_RASDIALEVENT = &HCCCD


Const RAS_MaxDeviceType = 16 + 1
Const RAS_MaxDeviceName = 32 + 1

Const RAS_MaxEntryName = 256 + 1
Const RAS_MaxPhoneNumber = 128 + 1
Const RAS_MaxCallbackNumber = RAS_MaxPhoneNumber
Const UNLEN = 256 + 1
Const PWLEN = 256 + 1
Const DNLEN = 15 + 1

Public Const RASDIALPARAMSLEN = 1052

Type RASDIALPARAMS
dwSize As Long
szEntryName As String * RAS_MaxEntryName '* 'Direct Cable Connection Host Logon
szPhoneNumber As String * RAS_MaxPhoneNumber '+ 1) As Byte
szCallbackNumber As String * RAS_MaxCallbackNumber '+ 1) As Byte
szUserName As String * UNLEN '+ 1) As Byte
szPassword As String * PWLEN '+ 1) As Byte
szDomain As String * DNLEN '+ 1) As Byte
dwRe1 As Long
dwRe2 As Long
End Type

Public Declare Function RasDial Lib "rasapi32" Alias "RasDialA" (lpRasDialExtensions As Any, _
lpszPhonebook As Any, lprasdialparams As RASDIALPARAMS, ByVal dwNotifierType As Long, _
ByVal lpvNotifier As Long, lphRasConn As Long) As Long
Public Declare Function RasGetErrorString Lib "rasapi32" Alias "RasGetErrorStringA" ( _
ByVal uErrorValue As Long, ByVal lpszErrorString As String, ByVal cBufSize As Long) As Long

Const constrRas = "RasConn"

Private mhConn As Long

Public Sub Dial(EntryName As String, PhoneNumber As String)
If mhConn Then
Err.Raise 855, constrRas, "连接未断开"
Else
Dim rp As RASDIALPARAMS
With rp
.dwSize = RASDIALPARAMSLEN
.szEntryName = EntryName & vbNullChar
.szPhoneNumber = PhoneNumber & vbNullChar
.szCallbackNumber = vbNullChar
.szUserName = vbNullChar
.szPassword = vbNullChar
.szDomain = "*" & vbNullChar
End With

RasErr RasDial(ByVal 0, ByVal 0, rp, -1, hWND, mhConn)
End If
End Sub


Private Sub RasErr(ByVal Number As Long)
If Number Then Err.Raise Number, constrRas, GetErrString(Number)
End Sub


Private Function GetErrString(ByVal Number As Long) As String

Dim s As String
s = String(256, 0)

If RasGetErrorString(Number, s, 255) Then
s = "未知错误。"
Else
s = TrimNull(s)
End If

GetErrString = s
End Function

Private Function TrimNull(StrNull As String) As String
Dim l As Long
l = InStr(StrNull, vbNullChar)
If l > 0 Then
TrimNull = Left$(StrNull, l - 1)
Else
TrimNull = StrNull
End If
End Function
Un1 2000-02-16
  • 打赏
  • 举报
回复
使用RasDial函数,并且将所拨的拨号网络中“登录网络”选项去掉即可。
mrlx 2000-02-15
  • 打赏
  • 举报
回复
能不能把以上几个API函数的定义说得更详细点?
mrlx 2000-02-14
  • 打赏
  • 举报
回复
首先感谢各位的指点。
我希望做到的是只进行“拨号网络”中的网络登录,跳过网络拨号和口令验证,不知各位可有高见?
Un1 2000-02-14
  • 打赏
  • 举报
回复
给你一个VB例子:

Moudle1:

Public Declare Function RnaDial Lib "rnaui.dll" (ByVal hWnd As Long, ByVal hInst As Long, ByVal lpszEntry As String, ByVal lFlag As Long) As Long
Public Declare Function RnaWizard Lib "rnaui.dll" (ByVal hWnd As Long, ByVal hInst As Long, ByVal lpszEntry As String, ByVal lFlag As Long) As Long


Form1:

VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 5745
ClientLeft = 1110
ClientTop = 1530
ClientWidth = 6420
LinkTopic = "Form1"
ScaleHeight = 5745
ScaleWidth = 6420
Begin VB.TextBox Text1
Height = 525
Left = 1680
TabIndex = 4
Text = "我的连接"
Top = 600
Width = 2235
End
Begin VB.OptionButton Option2
Caption = "&No face form"
Height = 435
Left = 2790
TabIndex = 3
Top = 3630
Width = 2265
End
Begin VB.OptionButton Option1
Caption = "&Has face form"
Height = 345
Left = 690
TabIndex = 2
Top = 3690
Value = -1 'True
Width = 1725
End
Begin VB.CommandButton Command2
Caption = "Rna&Wizard"
Height = 825
Left = 1980
TabIndex = 1
Top = 4320
Width = 2295
End
Begin VB.CommandButton Command1
Caption = "Rna&Dial"
Height = 615
Left = 1830
TabIndex = 0
Top = 1410
Width = 2235
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private lhWnd As Long
Private lhInst As Long

Private Sub Command1_Click()
On Error GoTo ErrorHandle

Dim l As Long
l = RnaDial(lhWnd, lhInst, Text1, 1)
If l Then
MsgBox "错误: " & l, vbCritical
End If
Exit Sub

ErrorHandle:
MsgBox Err.Description, vbCritical
End Sub

Private Sub Command2_Click()
On Error GoTo ErrorHandle
Dim s As String
If Option1 Then
s = "/0"
Else
s = "/1"
End If

Dim l As Long
l = RnaWizard(lhWnd, lhInst, s, 1)
If l Then
MsgBox "错误: " & l, vbCritical
End If
Exit Sub

ErrorHandle:
MsgBox Err.Description, vbCritical
End Sub

Private Sub Form_Load()
On Error Resume Next
lhWnd = hWnd
lhInst = App.hInstance
End Sub


tonyhan 2000-02-14
  • 打赏
  • 举报
回复
MSDN上就有拨号例子,如果要完全开发就很麻烦了。
forgettor 2000-02-14
  • 打赏
  • 举报
回复
试试这几个函数
RasEnumEntries
RasGetEntryProperties
RasGetEntryDialParams
RasDial
Firing_Sky 2000-02-14
  • 打赏
  • 举报
回复
在程序中打开 Internet 拨号连接窗口 98-6-19
Private Sub StartConnection()
Dim X
X = Shell("rundll32.exe rnaui.dll,RnaDial " & "_连接的名称_", 1)
DoEvents
SendKeys "{enter}", True
DoEvents
End Sub

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧