'我想在D盘的根文件夹下创建一个到C的快捷方式
'我运行后总提示失败,但当把If Not fSuccess Then行设为断点时,运行到这里,我再
'把执行的语句移到fSuccess = OSfCreateShellLink(strGroupName, strLinkName, strLinkPath, strLinkArguments, fPrivate, sParent)
'接着运行运行却可以正常建立。
'当失败时返回代码123,好像是什么“文件名、目录名或卷标语法不正确。”
'搞不懂为什么??我不想用其他的方法来实现,特请教各位!
'我用的是w2k,vb6中文版Option Explicit
Private Declare Function OSfCreateShellLink Lib "vb6stkit.dll" Alias "fCreateShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As LongPrivate Sub Command1_Click()
CreateShellLink "c:\", "", "Cqqq", "d:\", False, ""
End Sub
Public Sub CreateShellLink(ByVal strLinkPath As String, ByVal strLinkArguments As String, ByVal strLinkName As String, ByVal strGroupName As String, ByVal fPrivate As Boolean, sParent As String)
    Dim fSuccess As Boolean    fSuccess = OSfCreateShellLink(strGroupName, strLinkName, strLinkPath, strLinkArguments, fPrivate, sParent)    If Not fSuccess Then
        MsgBox "创建失败"
    End If
End Sub

解决方案 »

  1.   

    Private Declare Function fCreateShellLink Lib "STKIT432.DLL" (ByVal _
    lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal _
    lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As Long
    Sub Command1_Click()Dim lReturn As Long'Add to Desktop
    lReturn = fCreateShellLink("..\..\Desktop", _
    "Shortcut to Calculator", "c:\windows\calc.exe", "")
    'Add to Program Menu Group
    lReturn = fCreateShellLink("", "Shortcut to Calculator", _
    "c:\windows\calc.exe", "")
    'Add to Startup Group
    lReturn = fCreateShellLink("\Startup", "Shortcut to Calculator", _
    "c:\windows\calc.exe", "")End Sub
      

  2.   

    谢谢这位大哥,我现在用的是VB6.0,没有STKIT432.DLL这个文件啊,还有 我想搞清楚,我上面调用的API怎么会不稳定?一下行,一下又不行?奇怪了。