| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2638 人关注过本帖
标题:[求助]用VB如何作桌面上的图标?
只看楼主 加入收藏
gaozikunpeng
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-11-9
收藏
 问题点数:0 回复次数:8 
[求助]用VB如何作桌面上的图标?

如题所述!

搜索更多相关主题的帖子: 图标 
2006-11-19 07:42
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
什么意思呢?

我的msn: myfend@
2006-11-19 09:37
gaozikunpeng
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-11-9
收藏
得分:0 

比如我开发了一个应用软件,当安装到电脑上时,电脑桌面上的图标如何制作?

2006-11-19 11:10
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
如果直接用VB打包,可以这样做:

一、打开VB98/Wizards/PDWizard/Setup1/setup1.vbp工程。

二、打开名称为 basSetup1 的标准模块,声明两个公用变量:
Public lnkName As String
Public lnkPath As String

三、在上面打开的 basSetup1 标准模块中找到“CreateShellLink”过程,并找到下面的的内容:
If fSuccess Then
If fLog Then
CommitAction
End If
Else
在If...Else之间加上:
If InStr(strLinkPath, ".EXE") Or InStr(strLinkPath, ".exe") Then
If lnkName = "" Then
lnkName = strLinkName
lnkpath = strLinkPath
End If
End If

四、打开名称为frmSetup1的代码窗口,并在Form_Load 事件中找到以下内容:
'
' Create program icons (or links, i.e. shortcuts).
'
If fMainGroupWasCreated Or (cIcons > 0) Then
ShowStaticMessageDialog ResolveResString(resPROGMAN)
CreateIcons gsICONGROUP
'
' Do the same for other sections in SETUP.LST if you've added your own.
'
'CreateIcons "MySection"
'CreateIcons "MyOtherSection"
'
End If
在If... End If中加上:
(VB 5.0中)
If MsgBox("是否要创建桌面上快捷方式?", 32 + 4, "创建桌面快捷方式") = vbYes Then
OSfCreateShellLink "../../Desktop", lnkName, lnkPath, ""
End If

(VB 6.0中)
If MsgBox("是否要创建桌面快捷方式?", 32 + 4, "创建桌面快捷方式") = vbYes Then
OSfCreateShellLink "../../Desktop", lnkName, lnkPath, "", True, "$(Programs)"
End If

五、保存工程,并重新编译Setup1.vbp,用新编译的Setup1.exe替换原来的VB98/Wizards/PDWizard/Setup1.exe。

我的msn: myfend@
2006-11-19 11:14
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
创建开始菜单的快捷方式

Option Explicit

Private Sub Command1_Click()

CreateProgManGroup Me, "测试", "test.grp"
CreateProgManItem Me, "d:\ghost.exe", "Ghost"
CreateProgManItem Me, "d:\setupQQ.exe", "QQ"

End Sub

Sub CreateProgManGroup(X As Form, GroupName$, GroupPath$)
Dim i As Integer
X.Label1.LinkTopic = "ProgMan|Progman"
X.Label1.LinkMode = 2
Rem 空循环使DDE有时间执行
For i = 1 To 10
DoEvents
Next
X.Label1.LinkTimeout = 100
Rem LinkExecute 是在DDE通道中传送这样的命令
'──建立一个名为GroupName $的程序组。

X.Label1.LinkExecute "[ CreateGroup (" + GroupName$ + Chr$(44) + GroupPath$ + ") ]"
X.Label1.LinkTimeout = 50 '恢复Label1 的属性值
X.Label1.LinkMode = 0
End Sub


Sub CreateProgManItem(X As Form, CmdLine$, IconTitle$)
Dim i As Integer
X.Label1.LinkTopic = "ProgMan|Progman"
X.Label1.LinkMode = 2
For i = 1 To 10
DoEvents
Next
X.Label1.LinkTimeout = 100
X.Label1.LinkExecute "[AddItem(" + CmdLine$ + Chr$(44) + IconTitle$ + Chr$(44) + ", ,) ]"
X.Label1.LinkTimeout = 50 '恢复Label1 的属性值
X.Label1.LinkMode = 0
Screen.MousePointer = 0
End Sub


  '将程序建立成“启动”文件夹的捷径
Text1.LinkTopic = "Progman|Progman"
Text1.LinkMode = 2 '手动
Text1.LinkExecute "[ShowGroup(启动, 4)]"
Text1.LinkExecute "[AddItem(可执行文件完整路径, 捷径名称)]"

  假设我们想把“c:\vb5db\myprog.exe”建立成“启动”资料夹名称为“我的程序”的捷径,则最后一行的 LinkExecute 应该如下:

Text1.LinkExecute "[AddItem(c:\vb5db\myprog.exe, 我的程序)]"


  在桌面上添加程序的快捷方式
  假如程序为C:\Program Files\MyProg\Prog.exe,需加参数/Para
  新键一个项目,添加命令按钮和标签各一个,把下面的代码加上去,一运行,你将如愿以偿!
Option Explicit
Private Sub Command1_Click()
  CreateGroup "MyProg", "", "", 2, True
  CreateGroup "MyProg", "C:\ProgramFiles\MyProg\Prog.exe/Para", _
  "Para", 3, True
End Sub
Sub CreateGroup(ByVal strGroup As String, ByVal strCmd As String, ByVal _
strTitle As String, ByVal intDDE As Integer, ByVal fLog As Boolean)
  Const strCOMMA$ = ","
  Const strRESTORE$ = ", 1)]"
  Const strACTIVATE$ = ", 5)]"
  Const strENDCMD$ = ")]"
  Const strSHOWGRP$ = "[ShowGroup("
  Const strADDGRP$ = "[CreateGroup("
  Const strREPLITEM$ = "[ReplaceItem("
  Const strADDITEM$ = "[AddItem("

  Dim i As Integer
  Dim Sourcefile As String, Destinationfile As String

  Form1.Label1.LinkMode = 0
  For i% = 1 To 20
   On Error Resume Next
   Form1.Label1.LinkTopic = "PROGMAN|PROGMAN" '设置发送端应用程序和主题
   If Err = 0 Then Exit For
   DoEvents
  Next
  Form1.Label1.LinkMode = 2 '采用手动方式建立连接
  For i% = 1 To 10
   DoEvents
  Next
  Form1.Label1.LinkTimeout = 100 '设置等待 DDE 响应消息的时间。

  If Err = 0 Then
   Select Case intDDE
     Case 1 '建立程序项
      Form1.Label1.LinkExecute strADDGRP & strGroup & strENDCMD
      Form1.Label1.LinkExecute strADDITEM & strCmd & strCOMMA & _
        strTitle & String$(3, strCOMMA) & strENDCMD
     Case 2 '建立程序组
      Form1.Label1.LinkExecute strADDGRP & strGroup & strENDCMD
      Form1.Label1.LinkExecute strSHOWGRP & strGroup & strRESTORE
     Case 3 '建立程序项,并复制一份添加到桌面
      Form1.Label1.LinkExecute strADDGRP & strGroup & strENDCMD
      Form1.Label1.LinkExecute strADDITEM & strCmd & strCOMMA & _
        strTitle & String$(3, strCOMMA) & strENDCMD
      Sourcefile = "C:\WINDOWS\Start Menu\Programs\" & strGroup & _
        "\" & strTitle & ".lnk" ' 指定源文件名
      Destinationfile = "C:\WINDOWS\DESKTOP\" & strTitle & ".lnk"
                 '指定目的文件名。
      FileCopy Sourcefile, Destinationfile
   End Select
  End If

  '断开DDE联接
  Form1.Label1.LinkMode = 0
  Form1.Label1.LinkTopic = ""
End Sub

我的msn: myfend@
2006-11-19 11:16
b13690976754
Rank: 1
等 级:新手上路
威 望:2
帖 子:835
专家分:7
注 册:2006-11-9
收藏
得分:0 


If Dir(\"alive\") <> \"\" And Dir(\"ideal\") <> \" Then Print \"strive\" End If
2006-11-19 13:48
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
..........

我的msn: myfend@
2006-11-19 13:52
gaozikunpeng
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-11-9
收藏
得分:0 

purana!谢谢您详细的说明!!在这里感激涕零.如有问题再向您请教。

2006-11-19 14:20
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
不谢..我也在学..

我的msn: myfend@
2006-11-19 14:22
快速回复:[求助]用VB如何作桌面上的图标?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019465 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved