查找 Shell 链接的目标,即使目标已移动或重命名。
语法
iRetVal = ShellLinkObject.Resolve(
  fFlags
)
parameters
- 
fFlags [in]
 - 
类型: 整数
指定要执行的操作的标志。 这可以是以下值的组合:
 - 
(1)
 - 
如果无法解析链接,则不显示对话框。 设置此标志后, fFlags 的高序字将指定超时持续时间(以毫秒为单位)。 如果在超时持续时间内无法解析链接,则方法将返回 。 如果高序字设置为零,则超时持续时间默认为 3000 毫秒 (3 秒) 。
 - 
(4)
 - 
如果链接已更改,请更新其路径和标识符列表。
 - 
(8)
 - 
不要更新链接信息。
 - 
(16)
 - 
不要执行搜索启发。
 - 
(32)
 - 
请勿使用分布式链接跟踪。
 - 
(64)
 - 
禁用分布式链接跟踪。 默认情况下,分布式链接跟踪基于卷名称跨多个设备跟踪可移动媒体。 它还使用 UNC 路径跟踪其驱动器号已更改的远程文件系统。 设置此标志会禁用这两种类型的跟踪。
 - 
(128)
 - 
调用 Windows 安装程序。
 
备注
此方法在功能上与 Resolve 基本相同。 有关链接解析的进一步讨论,请参阅该页的“备注”部分。
示例
以下示例演示了此方法对 JScript、VBScript 和 Visual Basic 的正确用法。
Jscript:
<script language="JScript">
    function fnShellLinkObjectResolveJ()
    {
        var objShell = new ActiveXObject("shell.application");
        var objFolder;
        var ssfPROGRAMS = 2;
        
        objFolder = objShell.NameSpace(ssfPROGRAMS);
        if (objFolder != null)
        {
            var objFolderItem;
            
            objFolderItem = objFolder.ParseName("Internet Explorer.lnk");
            if (objFolderItem != null)
            {
                var objShellLink;
                
                objShellLink = objFolderItem.GetLink;
                if (objShellLink != null)
                {
                    objShellLink.Resolve(1);
                }
            }
        }
    }
</script>
VBScript:
<script language="VBScript">
    function fnShellLinkObjectResolveVB()
        dim objShell
        dim objFolder
        dim ssfPROGRAMS
        
        ssfPROGRAMS = 2
        set objShell = CreateObject("shell.application")
        set objFolder = objShell.NameSpace(ssfPROGRAMS)
            if (not objFolder is nothing) then
                dim objFolderItem
                
                set objFolderItem = objFolder.ParseName("Internet Explorer.lnk")
                    if (not objFolderItem is nothing) then
                        dim objShellLink
                        
                        set objShellLink = objFolderItem.GetLink
                            if (not objShellLink is nothing) then
                                objShellLink.Resolve(1)
                            end if
                        set objShellLink = nothing
                    end if
                set objFolderItem = nothing
            end if
        set objFolder = nothing
        set objShell = nothing
    end function
 </script>
Visual Basic:
Private Sub fnShellLinkObjectResolveVB()
    Dim objShell  As Shell
    Dim objFolder As Folder
    
    Set objShell = New Shell
    Set objFolder = objShell.NameSpace(ssfPROGRAMS)
        If (Not objFolder Is Nothing) Then
            Dim objFolderItem As FolderItem
            
            Set objFolderItem = objFolder.ParseName("Internet Explorer.lnk")
                If (Not objFolderItem Is Nothing) Then
                    Dim objShellLink As ShellLinkObject
                    
                    Set objShellLink = objFolderItem.GetLink
                        If (Not objShellLink Is Nothing) Then
                            objShellLink.Resolve (1)
                        End If
                    Set objShellLink = Nothing
                End If
            Set objFolderItem = Nothing
        End If
    Set objFolder = Nothing
    Set objShell = Nothing
End Sub
要求
| 要求 | 值 | 
|---|---|
| 最低受支持的客户端 | 
Windows 2000 专业版 SP3 [仅限桌面应用] | 
| 最低受支持的服务器 | 
Windows 2000 Server [仅限桌面应用] | 
| 标头 | 
  | 
| IDL | 
  | 
| DLL | 
  |