摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>VB>VB-API文章
◎→ 本类最新
Win95系统API函数大揭秘
WIN32 API的分类介绍--
WIN32 API的分类介绍--
WIN32 API的分类介绍--
WIN32 API
VB中用API函数实现文件夹列表
VB中利用API函数实现特殊窗体的两
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
VB基础视频教程
VB窗体文章
VB文件文章
VB数据库文章
VB-API文章
VB控制文章
◎→ 热门资源
Delphi8 for Microsoft® .NE
DELPHI8操作符重载的例子
Delphi编程的图形显示技巧
Delphi编程善用资源文件
Delphi编程实现程序快捷方式
Delphi编程中的“流”
delphi编译错误信息

VB创建桌面快捷方式(用DDE)


日期:2008-10-20 22:05:43    来源:http://www.pcppc.cn
   
 ·为什么创建VCL for .NET? -- Delphi编译器架构师撰文(2)

我写了一个可以向桌面增加快捷方式的小程序与调用Vb5stkit.dll或Vb6stkit.dll来建立快捷方式相比,最大的特点在于避免了对该DLL文件的依赖(并不是每一台Win9x的机上都有的这些文件的)。是不是很环#?BR>
  原理:利用Text控件的DDE在系统开始菜单中添加一个快捷方式,然后将该快捷方式剪切到桌面上来。

  须解决的问题:取得系统开始菜单和桌面的路径。这其中当然免不了要调用到API的SHGetSpecialFolderLocation 和SHGetPathFromIDList 函数。

  实现步骤:

  1.新建工程;

  2.在表单中增加一个文本框(txtLnk)及一个命令按钮(cmdMakeLnk);

  3.加入以下代码:

Option Explicit

Const CSIDL_DESKTOP = &H0 系统桌面

Const CSIDL_PROGRAMS = &H2 系统"开始-$#@62;程序"菜单

Private Type SHITEMID

cb As Long

abID As Byte

End Type

Private Type ITEMIDLIST

mkid As SHITEMID

End Type



Private Declare Function SHGetSpecialFolderLocation _

Lib "shell32.dll" (ByVal hwndOwner As Long, _

ByVal nFolder As Long, pidl As ITEMIDLIST) As Long

Private Declare Function SHGetPathFromIDList Lib _

"shell32.dll" Alias "SHGetPathFromIDListA" _

(ByVal pidl As Long, ByVal pszPath As String) As Long

三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
  定义取得系统特定文件夹的路径的函数。

Private Function GetSpecialfolder(CSIDL As Long) As String

Dim lRet As Long

Dim IDL As ITEMIDLIST

Dim sPath As String

lRet = SHGetSpecialFolderLocation(100, CSIDL, IDL)

  错误时返回非0值

If lRet = 0 Then

sPath = Space$(512)

lRet = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)

  一定要删除末尾的 0 字节。这在调用API时常常会遇到。

GetSpecialfolder = Left$(sPath, InStr(sPath, Chr$(0)) - 1)

Exit Function

End If

GetSpecialfolder = ""

End Function

Private Sub cmdMakeLnk_Click()

Dim sProgramsPath As String

Dim sDesktopPath As String

sProgramsPath = GetSpecialfolder(CSIDL_PROGRAMS)

sDesktopPath = GetSpecialfolder(CSIDL_DESKTOP)

txtLnk.LinkTopic = "Progman|Progman"

txtLnk.LinkMode = 2

三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
  格式:

  "[AddItem($#@60;欲建立快捷方式的命令行(可以是文件夹)$#@62;,$#@60;快捷方式的名称$#@62; ,[快捷方式的图标文件],[第几个图标])]"

  注意:

   1、由于文件名是字符串,所以必须加引号,也就是以下这行命令为什么们用了两个引号的原因

   2、在"快捷方式的图标文件"中所出现的路径及文件必须是8.3格式,不支持长文件名。

  下面假设为 C:\WINDOWS\CALC.EXE建立快捷方式

txtLnk.LinkExecute "[AddItem(""C:\WINDOWS\CALC.EXE"",""计算器"" )]"

  将快捷方式移至桌面

sProgramsPath = sProgramsPath & "\计算器.lnk"

sDesktopPath = sDesktopPath & "\计算器.lnk"

FileCopy sProgramsPath, sDesktopPath

Kill sProgramsPath

End Sub

  以上在Windows98、ME + VB5、VB6通过。有任何问题欢迎你跟我联系lonstar@cmmail.com  [1]

为什么创建VCL for .NET? -- Delphi编译器架构师撰文(1)

--->Windows XP PowerPacker V1.0 RC9┊创建WindowsXP多启动光盘┊英文绿色免费版
--->Visual Subst V1.0.5┊从任何现有文件夹创建虚拟驱动器盘符┊汉化绿色特别版
--->Teleport Ultra(离线浏览网页、创建某个网站镜象) V1.47┊离线浏览网页、可以创建某个网站镜象┊汉化绿色特别版
--->Teleport Pro V1.48┊离线浏览某网页、创建某个网站网页镜象┊英文绿色特别版
--->ASCII Art Studio V2.1.1┊创建ASCII字符画、图片转换字符画┊汉化绿色特别版
Tags:  创建 桌快捷方式 DDE

芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们