VB安装程序如何在桌面放置快捷方式

difa 2004-09-02 08:44:32
在网上查到的方式是:修改setup1.vbp工程文件的代码。
由于是使用的vb6.0。所以加入
OSfCreateShellLink "..\..\Desktop", "我的程序", gstrDestDir + "MyProc.exe", "", True, "$(Programs)"
,但是为什么还是没有在桌面添加快捷方式呢,我怀疑是不是因为我的系统是winxp的关系,请有经验的高手指点个方法。急,在线等!谢谢
...全文
268 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
difa 2004-09-03
呵呵呵~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
先谢谢各位了!

helanshan()的做法网上都是这么说的,但是我怎么做都就是没有生成,真的不骗你,不知你做的时候是不是也是用VB6+windows+sp1(注明:我的WinXP是俄罗斯人破解的那个含SP1的版本,VB是VB6.0简体中文版),哎,OsfCreateShellLink函数就是总返回0.希望有空给我交流一下好吗? (40分)

fengsuixhuyin()的做法也找到过,但是,GetSpecialFolder()函数VB6STKIT.DLL没有,而是
SHGetSpecialFolderLocation(),这种方法是将程序目录中建的快捷方式拷到桌面上。还好硬着头皮做了出来:代码如下,望以后再也不会有人为VB安装程序在桌面建快捷方式而苦了(如果这个人想用OsfCreateShellLink()这种正宗的方式做的话,我也无能为力了).

Dim sProgramsPath As String
Dim sDesktopPath As String
Dim IDL As Long
Dim oMalloc As IVBMalloc

If SHGetSpecialFolderLocation(frmSetup1.hwnd, sfidPROGRAMS, IDL) = NOERROR Then
sProgramsPath = String$(gintMAX_PATH_LEN, 0)
SHGetPathFromIDListA IDL, sProgramsPath
SHGetMalloc oMalloc
oMalloc.Free IDL
sProgramsPath = StringFromBuffer(sProgramsPath)
End If
If SHGetSpecialFolderLocation(frmSetup1.hwnd, sfidDESKTOP, IDL) = NOERROR Then
sDesktopPath = String$(gintMAX_PATH_LEN, 0)
SHGetPathFromIDListA IDL, sDesktopPath
SHGetMalloc oMalloc
oMalloc.Free IDL
sDesktopPath = StringFromBuffer(sDesktopPath)
End If
最后一点:
ShowStaticMessageDialog ResolveResString(resPROGMAN)
CreateIcons gsICONGROUP


If Dir(sProgramsPath) <> "" Then
FileCopy sProgramsPath, sDesktopPath
End If
''FileCopy的命令放在CreateIcons gsICONGROUP之后吧,没有生成快捷方式怎么拷呢!
  • 打赏
  • 举报
回复
fengsuizhuyin 2004-09-02
打开“frmSetup1”窗口,在其代码的第463行的位置上加如下代码:

Dim sProgramsPath As String
Dim sDesktopPath As String

sProgramsPath = GetSpecialFolder(sfidPROGRAMS)
sDesktopPath = GetSpecialFolder(sfidDESKTOP)
sProgramsPath = sProgramsPath & "\" & gstrAppName & "\" & gstrAppName & ".lnk"
sDesktopPath = sDesktopPath & "\" & gstrAppName & ".lnk"
FileCopy sProgramsPath, sDesktopPath
  • 打赏
  • 举报
回复
helanshan 2004-09-02
我用了,没有问题啊。。
  • 打赏
  • 举报
回复
helanshan 2004-09-02
我以前找到的帖子,该方法麻烦了点,就是在每次制作安装程序前先修改该文件。。
在你的VB6安装目录下找到文件,按以下方法修改:
如何使安装程序在桌面上建立快捷方式


VB展开与打包向导生成的安装程序的工作步骤是这样的:先运行Setup.exe,这个程序将VB的运行库安装到用户的机器上,然后再调用Setup1.exe。Setup1.exe是由VB写的(正是这个原因所以要先安装VB的运行库),其源程序可以在VB98\Wizards\PDWizard\Setup1中找到。所以如果你对VB的安装程序不满,就可以直接修改Setup1.vbp。对于你的问题,在VB中可以打开Setup1.vbp,然后修改Setup1.frm的Form_Load事件,在其中可以找到如下几行:

'
' Create program icons (or links, i.e. shortcuts).
'
If (fMainGroupWasCreated = True) Or ((cIcons > 0) And
TreatAsWin95()) 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 6.0中)
OSfCreateShellLink "..\..\Desktop", _
"我的程序", gstrDIR_DEST + "MyProg.exe", "", True, "$(Programs)"

重新编译Setup1.vbp,用Setup1.exe替换原来的Setup1.exe即可。




  • 打赏
  • 举报
回复
LGYAN 2004-09-02
应该是文件 路径的问题,建议你另外用VB做一个程序,就是创建快捷方式,然后将安装包报出来的路径输入到该程序中,看看是否可以创建,应该是路径问题!!!

见网页:http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q155/3/03.asp&NoWebContent=1
  • 打赏
  • 举报
回复
difa 2004-09-02
不好意思,由于某种原因,现采用修改setup1.vbp的方法,有谁知如何修改,使在xp下能创建快捷方式吗
  • 打赏
  • 举报
回复
huangjianyou 2004-09-02
用Setup Factory打包,添加EXE后右键属性有设置桌面快捷方式的。

^_^
  • 打赏
  • 举报
回复
difa 2004-09-02
唉,真的是好难呀,没法用VB6+Winxp+SP1 在桌面上建快捷方式了,脑袋大了一天了!好像骂VB,骂Bill!还是没有做出来.............
  • 打赏
  • 举报
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-09-02 08:44
社区公告
暂无公告