怎样为网络连接(如ADSL)创建一个快捷方式并放在桌面上

DawnPine 2006-03-19 08:27:37
可以通过手工或程序在
控制面板-网络连接
里创建一个ADSL连接

如果这个连接已经创建好
现在想用程序创建该连接的快捷方式并放在桌面上
如何实现?

另:谁有RAS的属性、方法等方面的资料?
或者给个链接也行,最好是中文。
...全文
2244 点赞 收藏 17
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
DawnPine 2006-03-22
顶一下
回复
ZOU_SEAFARER 2006-03-21
呵呵,不好意思,我的有这个文件,刚才是没有看见,程序员近视呵呵
回复
同意暴风雨老大,Shell32.dll是系统级的dll,不可能没有。
另外,我记得好像IE 4.01及其以上版本才有Microsoft Shell Controls And Automation COM对象。
回复
rainstormmaster 2006-03-21
//可是我怎么没有Microsoft Shell Controls And Automation 文件,也不知道这个文件老大从那里弄来的,呵呵

这个对应的文件是shell32.dll,你的系统中不可能没有
回复
ZOU_SEAFARER 2006-03-21
引用文件都是从工程 -引用 里面引用的!可是我怎么没有Microsoft Shell Controls And Automation 文件,也不知道这个文件老大从那里弄来的,呵呵
回复
暴风雨老大的方法测试成功,楼主是否从工程 -引用 对话框中,找到并添加Microsoft Shell Controls And Automation?
回复
ZOU_SEAFARER 2006-03-21
我是在xp下,没有问题呀!虽然没有在桌面建立快捷方式,但是双击也就可以拨号了!
回复
DawnPine 2006-03-21
暴风雨的方法我试过
能成功

但总觉得有点不过瘾,没有全面掌控的快感
这个lnk指向谁 保存在哪里 显示为什么名字等应该是可控的
谁还有更好的解决方案?用API或WMI都可以

所以还在这里等更好的解决方案

国际海员的方法好象更简洁一些
但我用的时候确实报错
大家可以在运行窗口里输入

rundll32.exe rnaui.dll,RnaDial 本地连接

试试,我在2K和XP下都试过
回复
DawnPine 2006-03-20
回楼上,弹出对话框:

加载rnaui.dll出错
找不到指定的模块
回复
ZOU_SEAFARER 2006-03-20
把这个函数生成exe文件
Private Sub StartConnection()
Dim X
X = Shell("rundll32.exe rnaui.dll,RnaDial " & "_连接的名称_", 1)
DoEvents
SendKeys "{enter}", True
DoEvents
End Sub

回复
rainstormmaster 2006-03-20
处理弹出的对话框可以用一个全局的cbt钩子处理,也可以在多线程中模拟点击按钮
回复
DawnPine 2006-03-20
已经很接近目标了。
我把在XP下测试情况和同学们共享一下:

这段程序通过遍历虚拟文件夹“网络连接”中的各个item
查找要处理的obj
找到后再遍历该obj的右键菜单
找“创建快捷方式”这个菜单命令
找到后执行该命令

但在该命令执行过程中会弹出一个对话框
说这里不能建shortcut 是否建到桌面上
只有点击了是才能建立shortcut 其它情况(点否 叉掉 重启...)
并不能创建快捷方式

我试图用
appactivate "快捷方式"
sendkeys "%y"
来解决该问题,未获满意效果
在多次的测试中仅有一次成功,为何会成功原因不明
多数情况下能关闭“快捷方式”窗口但未能创建所需快捷方式

注:
为避免在IDE环境影响测试效果已将工程编译为EXE文件
在语句前后试过加空循环,也未能解决问题

该方法通过调用系统菜单解决问题,不失为一种解决方案
但总觉得有点不过瘾,没有全面掌控的快感
这个lnk指向谁 保存在哪里 显示为什么名字等应该是可控的
谁还有更好的解决方案?用API或WMI都可以
回复
rainstormmaster 2006-03-19
//支持,楼上的代码在2K下好想有问题,提示ERROR

这段代码我就是在win2k下写的,应该不会有什么问题

另外,你单步调试一下,看看哪句有问题
回复
空心兜兜 2006-03-19
呵呵!
来晚了!
帮你顶下
回复
IamDeane 2006-03-19
支持,楼上的代码在2K下好想有问题,提示ERROR
回复
rainstormmaster 2006-03-19
Private Sub Command1_Click()
'首先,从工程 -引用 对话框中,找到并添加Microsoft Shell Controls And Automation
On Error Resume Next
Dim AdapterName As String
AdapterName = "本地连接 2" '修改成你要控制的网络连接的名字
Dim mShell As New Shell32.Shell
Dim NetConnection As Shell32.Folder
Dim FolderItem As Shell32.FolderItem
Dim NetConnectionItem As ShellFolderItem
Dim verb As Shell32.FolderItemVerb
Set NetConnection = mShell.NameSpace(49) '这个49是我找出来的,有了它就可以避免遍历控制面板
If ObjPtr(NetConnection) = 0 Then
MsgBox "error"
Exit Sub
End If
Dim flag As Boolean
flag = False
For Each FolderItem In NetConnection.Items
If FolderItem.Name = AdapterName Then
Set NetConnectionItem = FolderItem
flag = True
Exit For
End If
Next
If flag = False Then
MsgBox "error"
Exit Sub
End If
For Each verb In NetConnectionItem.Verbs
'Print verb.Name
If verb.Name = "创建快捷方式(&S)" Then
verb.DoIt
Exit For
End If
Next
End Sub
回复
BookSirSwordsMan 2006-03-19
关注中……
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7449

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告