ShellLinkObject.Resolve メソッド
ターゲットが移動または名前変更された場合でも、シェル リンクのターゲットを検索します。
構文
iRetVal = ShellLinkObject.Resolve(
fFlags
)
パラメーター
-
fFlags [in]
-
型: 整数
実行するアクションを指定するフラグ。 これは、次の値の組み合わせになります。
-
(1)
-
リンクを解決できない場合は、ダイアログ ボックスを表示しません。 このフラグが設定されている場合、 fFlags の上位ワードはタイムアウト期間をミリ秒単位で指定します。 タイムアウト期間内にリンクを解決できない場合、 メソッドは を返します。 上位ワードが 0 に設定されている場合、タイムアウト期間の既定値は 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 Professional sp3 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
IDL |
|
[DLL] |
|