Поделиться через


Метод ShellLinkObject.Resolve

Ищет целевой объект ссылки оболочки, даже если целевой объект был перемещен или переименован.

Синтаксис

iRetVal = ShellLinkObject.Resolve(
  fFlags
)

Параметры

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 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (версия 5.0 или более поздняя)