vb菜鸟求助

woodheart 2000-09-13 11:03:00
在vb中如何调用windows的拨号程序进行拨号?
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shines77 2000-09-15
  • 打赏
  • 举报
回复
哪用这么麻烦啊:

Dim DialupName As String
'拨号链接的名字
DialupName = "163网"
'启动拨号链接
Shell "Rundll32.exe rnaui.dll,RnaDial " + DialupName, vbNormalFocus
phf 2000-09-15
  • 打赏
  • 举报
回复
我想用不了那么麻烦,象gameboy999所说的,VB里有空间能实现的,是mscomm控件,它完全可以写出一个拨好程序来,而且不难.控件的具体用法你可以查一下关于这个控件的书,我就不多说了.如果实在没有可以Mail我.
vbplayer 2000-09-14
  • 打赏
  • 举报
回复
我从MSDN上复了这一章下来,这样应该没问题了吧。
创建基本的外接程序


建立外接程序的工作主要是创建类模块,用于处理外接程序专门的事件以及其它用户指定的事件,另外还包括用户的支持模块和窗体。除非需要有在相同的 IDE 中运行同一个外接程序的多个实例,否则,所有的类过程都必须声明为 “私有的”,以防其它例程随便地引用它们。

因为外接程序必须是 ActiveX 部件,所以,在完成外接程序的代码之后,必须将其作为 ActiveX.dll 或者 .exe 文件进行编译。由于种种原因,一般情况下最好将外接程序创建为 ActiveX.dll 文件。

详细信息 关于对 .exe 和 .dll 文件类型的外接程序的简单比较,请参阅“如何建立外接程序”中的“编译外接程序”。

初次涉足,先建立一个非常简单的外接程序,它只演示如何使用外接程序的基本部件─类模块。以后将解释该例是如何工作的。

注意 下面的过程引导您手工创建外接程序。或者,您可以只创建一个外接程序工程,则所有的基本外接程序结构都会为您创建好。

要创建 AddInProject 外接程序,请按照以下步骤执行:

在“文件”菜单中,单击“新建工程”打开“新建工程”对话框。(这将关闭当前的工程或工程组;并提示保存所作的改动。)双击 “ActiveX DLL”图标创建一个新的工程。


单击“工程”菜单,然后单击“引用”,选择“Microsoft Visual Basic 5.0 扩展”和“Microsoft Office 8.0 Object Library”复选框。
这样就可以对创建外接程序所需的可扩展性对象和集合进行访问。

单击“工程”菜单,再单击“添加模块”,在“添加模块”对话框中双击“模块”图标,创建一个新的模块。
注意,有一个对应于 AddIn 模板的图标。该模板包括外接程序必备的一些启动代码。

在新模块中输入以下代码:

Declare Function WritePrivateProfileString& Lib _
"kernel32" Alias "WritePrivateProfileStringA" _
(ByVal AppName$, ByVal KeyName$, ByVal _
keydefault$, ByVal FileName$)
Sub AddToINI()
Dim rc As Long
rc = WritePrivateProfileString("Add-Ins32", _
"AddInProject.AddInClass", "0", "VBADDIN.INI")
MsgBox _
"Add-in is now entered in VBADDIN.INI file."
End Sub

或者,您可以用外接程序设计器为您的外接程序创建引用。有关如何进行的详细指令,请参阅第四章“连接和显露外接程序”中的“引用外接程序”。

在“工程资源管理器”窗口中,双击类模块 Class1 将其显示出来。将 Name 属性设置为“AddInClass”,并确认其 Instancing 属性为 "5 – MultiUse"。


将以下代码行添加到类模块中:
Implements IDTExtensibility

这样将在工程中增加一个 IDTExtensibility 对象的引用。

在“对象”框中单击“IDTExtensibility”。
注意,四个新的事件将出现在“过程”框中:OnConnection、OnDisconnection、OnStartupComplete以及 OnAddInsUpdate。

单击“过程”框中的每个事件,把它们的过程添加到类模块中。
虽然可以手工地输入过程语法,这里仍然强烈建议以单击框中的事件名的方式将过程添加至类模块中,从而确保所有的名称和参数均输入正确。另外,这样会快得多!

要使外接程序正常工作,所有这些事件过程都必须出现在类模块中。另外,如果有一个或多个事件过程中没有任何代码,则在编译时它将被删除,因此,至少需要在每个事件过程中加入一句注释,以确保编译时它们被保留在类模块中,这是很重要的。

既然已经添加了四个事件,再加上以下代码:
Private Sub IDTExtensibility_OnConnection(ByVal _
VBInst As Object, ByVal ConnectMode As _
VBIDE.vbext_ConnectMode, ByVal AddInInst As _
VBIDE.AddIn, custom() As Variant)
MsgBox "Add-in is now connected"
End Sub

Private Sub IDTExtensibility_OnDisconnection(ByVal _
RemoveMode As VBIDE.vbext_DisconnectMode, _
Custom () as Variant)
MsgBox "Add-in is now disconnected"
End Sub

Private Sub IDTExtensibility_OnStartupComplete _
(custom() As Variant)
'增加注释的目的是
'防止过程在编译的时候被删除。
End Sub

Private Sub IDTExtensibility_OnAddInsUpdate _
(custom() As Variant)
'增加注释的目的是
'防止过程在编译的时候被删除。
End Sub

在“工程”菜单中,单击“Project1 属性”,然后在“工程名称”框中输入 AddInProject,然后单击“确定”。


在“文件”菜单中,单击“保存工程”保存工程文件。按下述表格对其命名。Visual Basic 将自动提供下面显示的扩展名。 文件 文件名 扩展名
Basic module AddIn .bas
Class module AddInClass .cls
Project AddInProject .vbp


要测试 AddInProject 外接程序,请按照以下步骤执行:

单击“文件”菜单,再单击“生成 AddInProject.dll”。在“生成工程”对话框中单击“确定”。
这将把外接程序注册到系统注册表。

在“立即”窗口中,输入 AddToINI 然后按RETURN 键。随后将出现一个消息框显示出“外接程序现在进入到 VBADDIN.INI 文件中”。


在“文件”菜单中,单击“新建工程”打开“新建工程”对话框。(这将关闭 AddInProject.vbp,并提示保存所作的改动。)双击“标准 EXE”图标创建一个新的工程。


单击“外接程序”菜单,再单击“外接程序管理器”。注意列表中将出现一个新的条目:“AddInProject.AddInClass”。


选择“AddInProject.AddInClass”复选框,然后单击“确定”。
这时,将出现以下对话框:



单击“确定”,清除“AddInProject.AddInClass”复选框,然后再单击“确定”。
这时将出现以下对话框:



刚才发生了什么
这个外接程序的作用是说明外接程序的部件,以及类模块这一基本部件的特点。下面将遍历上述各步骤,讨论每一步做了些什么,更重要的是:怎样做以及为什么这么做。

AddToINI 过程只有一个作用:在 Windows 目录下的 Vbaddin.ini 文件中为新的外接程序增加一项。为什么要这么做呢?因为这样 Visual Basic 才会知道它是可用的外接程序。可以以任何方式添加该项,但是 Windows WritePrivateProfileString API 函数调用可以令人满意地完成该任务。
到这里需要指出很重要的一点:把一个外接程序分发给其他用户的时候,在使用该外接程序之前,必须在其机器上运行这个函数(也可以使用其它的替代方法)更新 Vbaddin.ini 文件。如果不这么做,Visual Basic 将不知道该外接程序是可用的,该外接程序将不会显示在“外接程序管理器”的外接程序列表中。

可以将这样一个过程放在基本模块中(如同所做的那样),并且指示用户运行此函数,但是更明智的解决办法是:在外接程序安装程序中替用户完成该工作。

或者,您可以用外接程序设计器为您的外接程序创建引用。有关如何进行的详细指令,请参阅第四章“连接和显露外接程序”中的“引用外接程序”。

类模块是外接程序的核心。它是外接程序对事件作出响应的地方。在这个例子中,很显然它并没有做什么,只是在连接或断开外接程序的时候显示消息框,但是,可以设计外接程序对数百个事件作出准确的响应!
尽管主类模块是可以使用的,但最好还是不要把所有的代码都放在其中,除非很简单的情况。可以把其它代码放到基本模块或其它的类模块中,并从主类模块中调用该过程。只需按照通常过程的程序设计准则即可。

在 DLL 的编译过程中,它将被注册到系统注册表中。


在“立即”窗口中运行 AddToINI 过程,为外接程序在 Vbaddin.ini 中创建一个 .ini 文件登录项。


后面的步骤显示如何在其它工程中激活该外接程序,以及它在“外接程序管理器”中如何显示和动作。另外,还显示了在“外接程序管理器”中选择和清除外接程序登录项时 OnConnection 和 OnDisconnection 事件是如何触发的。
Again 2000-09-13
  • 打赏
  • 举报
回复
Shell "*.exe"


不知对不对,这是Qbasic的方法。
gameboy999 2000-09-13
  • 打赏
  • 举报
回复
vb中有控件可实现,在部件里加上,再调用其方法即可,具体是哪个控件去查MSDN吧,我忘了,不好意思.
如果你只是想调出windows里那个拨号程序,(它并不能自动拨号),那 就是用again兄说的 shell函数即可,语法有提示

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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