Compartir a través de


Método ShellLinkObject.Resolve

Busca el destino de un vínculo de Shell, incluso si se ha movido o cambiado el nombre del destino.

Sintaxis

iRetVal = ShellLinkObject.Resolve(
  fFlags
)

Parámetros

fFlags [in]

Tipo: Entero

Marcas que especifican la acción que se va a realizar. Puede ser una combinación de los siguientes valores:

(1)

No muestre un cuadro de diálogo si no se puede resolver el vínculo. Cuando se establece esta marca, la palabra de orden superior de fFlags especifica una duración de tiempo de espera, en milisegundos. El método devuelve si el vínculo no se puede resolver dentro de la duración del tiempo de espera. Si la palabra de orden superior se establece en cero, la duración del tiempo de espera se establece de forma predeterminada en 3000 milisegundos (3 segundos).

(4)

Si el vínculo ha cambiado, actualice su ruta de acceso y la lista de identificadores.

(8)

No actualice la información del vínculo.

(16)

No ejecute la heurística de búsqueda.

(32)

No use el seguimiento de vínculos distribuidos.

(64)

Deshabilite el seguimiento de vínculos distribuidos. De forma predeterminada, el seguimiento de vínculos distribuidos realiza un seguimiento de los medios extraíbles en varios dispositivos en función del nombre del volumen. También usa la ruta de acceso UNC para realizar un seguimiento de los sistemas de archivos remotos cuya letra de unidad ha cambiado. Al establecer esta marca, se deshabilitan ambos tipos de seguimiento.

(128)

Llame a Windows Installer.

Comentarios

Este método es esencialmente idéntico en la funcionalidad de Resolve. Para obtener más información sobre la resolución de vínculos, vea la sección Comentarios de esa página.

Ejemplos

En el ejemplo siguiente se muestra el uso adecuado de este método para JScript, VBScript y 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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional con SP3 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Shldisp.h
IDL
Shldisp.idl
Archivo DLL
Shell32.dll (versión 5.0 o posterior)