Condividi tramite


Metodo ShellLinkObject.Resolve

Cerca la destinazione di un collegamento shell, anche se la destinazione è stata spostata o rinominata.

Sintassi

iRetVal = ShellLinkObject.Resolve(
  fFlags
)

Parametri

fFlags [in]

Tipo: Intero

Flag che specificano l'azione da eseguire. Questa può essere una combinazione dei valori seguenti:

(1)

Non visualizzare una finestra di dialogo se il collegamento non può essere risolto. Quando questo flag viene impostato, la parola ad ordine elevato di fFlags specifica una durata di timeout, in millisecondi. Il metodo restituisce se il collegamento non può essere risolto entro la durata del timeout. Se la parola con ordine elevato è impostata su zero, la durata del timeout viene impostata su 3000 millisecondi (3 secondi).

(4)

Se il collegamento è stato modificato, aggiornare il percorso e l'elenco di identificatori.

(8)

Non aggiornare le informazioni sul collegamento.

(16)

Non eseguire l'euristica della ricerca.

(32)

Non usare il rilevamento dei collegamenti distribuiti.

(64)

Disabilitare il rilevamento dei collegamenti distribuiti. Per impostazione predefinita, il rilevamento dei collegamenti distribuiti tiene traccia dei supporti rimovibili in più dispositivi in base al nome del volume. Usa anche il percorso UNC per tenere traccia dei file system remoti la cui lettera di unità è stata modificata. L'impostazione di questo flag disabilita entrambi i tipi di rilevamento.

(128)

Chiamare Windows Installer.

Commenti

Questo metodo è essenzialmente identico alla funzionalità Resolve. Per altre discussioni sulla risoluzione dei collegamenti, vedere la sezione Osservazioni di tale pagina.

Esempio

Nell'esempio seguente viene illustrato l'utilizzo appropriato di questo metodo per JScript, VBScript e 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

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional con SP3 [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (versione 5.0 o successiva)