| スーパー手抜きでいちおう完成。 以下の1行を追加しただけです。 「WshShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\AllowWindowReuse", 0 ,"REG_DWORD"」 確認しましたが、とりあえず動きます。 キーの二重作成はしないようです。
下のスクリプト部分を CreateNewOpenFav.vbs というファイル名で保存とかは引用先と同じです。 ダブルクリックで起動「はい」で機能追加「いいえ」で機能削除です。
---この下から set WshShell= CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") winpath = WshShell.ExpandEnvironmentStrings("%windir%") i = WshShell.PopUp("インターネットショートカットの右クリックに「新しいウィンドウで開く」を追加します?" & vbcr & _ "[いいえ]をクリックすると元に戻します",0,"Windows Script Host",35) if i=6 then WshShell.RegWrite "HKCR\InternetShortcut\shell\NewOpen\",_ "新しいウィンドウで開く(&Q)","REG_SZ" WshShell.RegWrite "HKCR\InternetShortcut\shell\NewOpen\command\",_ "wscript.exe """ & winpath & "\NewOpenFav.vbs"" ""%l""","REG_SZ" WshShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\AllowWindowReuse", 0 ,"REG_DWORD" set f = fso.OpenTextFile(winpath & "\NewOpenFav.vbs",2,true) f.WriteLine "set WshShell= CreateObject(""WScript.Shell"")" f.WriteLine "set objArgs = WScript.Arguments" f.WriteLine "key = ""HKCU\Software\Microsoft\Internet Explorer\Main\AllowWindowReuse""" f.WriteLine "flag = WshShell.RegRead(key)" f.WriteLine "WshShell.RegWrite key, 0 ,""REG_DWORD""" f.WriteLine "WshShell.Run ""rundll32.exe shdocvw.dll,OpenURL "" & objArgs(0),10,true" f.WriteLine "WshShell.RegWrite key, flag ,""REG_DWORD""" f.close msgbox("完了しました") elseif i=7 then on error resume next WshShell.RegDelete "HKCR\InternetShortcut\shell\NewOpen\command\" WshShell.RegDelete "HKCR\InternetShortcut\shell\NewOpen\ddeexec\Application\" WshShell.RegDelete "HKCR\InternetShortcut\shell\NewOpen\ddeexec\Topic\" WshShell.RegDelete "HKCR\InternetShortcut\shell\NewOpen\ddeexec\" Err.Clear WshShell.RegDelete "HKCR\InternetShortcut\shell\NewOpen\" if Err.Number<>0 then msgbox("レジストリの削除に失敗しました" & vbcr & "既に削除された可能性があります") Err.Clear end if fso.DeleteFile winpath & "\NewOpenFav.vbs" if Err.Number<>0 then msgbox("ファイルの削除に失敗しました" & vbcr & "既に削除された可能性があります") end if msgbox("完了しました") end if WScript.Quit ---この上まで
|