共用方式為


ShellLinkObject.Resolve 方法

即使目標已移動或重新命名,仍會尋找 Shell 連結的目標。

語法

iRetVal = ShellLinkObject.Resolve(
  fFlags
)

參數

fFlags [in]

類型: 整數

指定要採取的動作的旗標。 這可以是下列值的組合:

(1)

如果無法解析連結,請勿顯示對話方塊。 設定此旗標時, fFlags 的高序字會以毫秒為單位指定逾時持續時間。 如果無法在逾時期間內解析連結,方法會傳回 。 如果高序字設為零,逾時持續時間預設為 3000 毫秒, (3 秒) 。

(4)

如果連結已變更,請更新其路徑和識別碼清單。

(8)

請勿更新連結資訊。

(16)

請勿執行搜尋啟發學習法。

(32)

請勿使用分散式連結追蹤。

(64)

停用分散式連結追蹤。 根據預設,分散式連結追蹤會根據磁片區名稱,追蹤跨多個裝置的抽取式媒體。 它也會使用 UNC 路徑來追蹤已變更磁碟機號的遠端檔案系統。 設定此旗標會停用這兩種類型的追蹤。

(128)

呼叫 Windows Installer。

備註

這個方法基本上與 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 [僅限傳統型應用程式]
標頭
Shldisp.h
Idl
Shldisp.idl
DLL
Shell32.dll (5.0 版或更新版本)