Vistaでは、ShellWindows.Item()が「現在のシェル」から「デスクトップ シェル」に変更された。
「デスクトップ シェル」が取れるようになったのは朗報ですが、「現在のシェル」が取れなくなったのは、影響大です。
IE7から「現在のIE」が取れなくなりましたが、これはコンテキストメニュー拡張で代替しました。
Vistaからの「現在のシェル」が取れなくなったのは、どう代替するか?
ディレクトリのバックグラウンドのコンテキストメニューで代替します。
[HKEY_CLASSES_ROOT\Directory\Background\shell\メニュー名\command]
@="wscript.exe \"C:\\どこか\\現在のシェル.VBS\" %V"
%Vでディレクトリパスが取れるので、それを目印に探します。
For Each ie In CreateObject("Shell.Application").Windows()
If InStr(LCase(ie.FullName),"explorer.exe") Then If ie_Document_Folder_Self_Path=WScript.Arguments.Item(0) Then Exit For
Next
If IsEmpty(ie) Then
MsgBox "Not Found"
Else
MsgBox ie.Document.Folder.Self.Path
End If
Function ie_Document_Folder_Self_Path
On Error Resume Next
ie_Document_Folder_Self_Path=ie.Document.Folder.Self.Path
End Function
同じディレクトリパスで複数のエクスプローラを開いていると、最初のが取れちゃいます。
« Vistaではショートカットへのドロップが使えない!が修正された。 | トップページ | ショートカットの起動で、なぜか「開いているファイル - セキュリティの警告」が出る。 »