|
論壇說明 | 標記討論區已讀 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-09-14, 10:21 AM | #1 |
榮譽會員
|
系統 - 除掉右鍵新增多餘表菜單
除掉右鍵新增多餘表菜單
自從裝了新軟件後,滑鼠右鍵的新增表菜單有時候就會多出一個新的選項,每次新增那個選項就長長的一列,看上去就不爽。所以萌生了手動去掉這些多餘表菜單的念頭。略略百度了一下,沒有找到有用的訊息。 或者有的人說,那還不簡單!用優化大師或者兔子或者什麼軟件就很容易去掉了。省心。簡單,便捷。那麼我要說一句,請您不要再看下去了。這篇菜鳥心得不值得您浪費時間。請忙您的事情去吧。 繼續我的「清除行動」,很容易就找到 HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Discardable\\PostSetup\\ShellNew 下面的鍵值就是右鍵新增的表菜單,刪去多餘的選項,回到桌面看一下。怎麼還在? 那些刪去的東西又回來了!繼續F3 , 找到 HKEY_USERS\\S-1-5-21-********-484763869-********-1003\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Discardable\\PostSetup\\ShellNew (這裡的 S-1-5-21-********-484763869-********-1003 這個每個系統都不一樣) 發現相同的鍵值 (其實這裡跟第一處是完全一樣的) 改了之後發現其實還是沒有效果。我鬱悶了。。。。。 後來忙了半天,終於發現奧妙所在了。其實鍵值那裡其實是一個新增表菜單的集合。換句話說,跟 HKEY_CLASSES_ROOT 裡面的文件類型項有關係。我舉個例子更容易理解吧 如果我在 「HKEY_CLASSES_ROOT\\.com\\ 」下 新增一個子項「ShellNew」 ,然後在 這個子項的右邊新增一個名為「NullFile」的字元串值 (或者是 "FileName"),那麼按F5重新整理註冊表後,你的右鍵新增表菜單就會多出一個名為 MS-DOS應用程式的選項了 CODE: ;xpsp2下測試有效 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.com\ShellNew] "NullFile"="" [Copy to clipboard] 知道了怎麼增加一個選項當然很簡單就知道怎麼刪除多餘的選項,這裡我就不多說了。其實有一個更簡單的方法,用優化大師或者兔子或者什麼其他軟件的,再用一個RegSnap 記錄刪除前後註冊表的變化,對比一下就看出來了。 我寫了一個hta程式。可以很直觀的刪除你不想要的項 在xpsp2下測試有效 ,2000里需要reg.exe 這個文件,我已經複製出來,請放到%windir%\system32 下 reg.exe MD5: 7f1e65bde053985ba645340bc0cf6497 <html> <!-- '******************************************************************** '* '* File: Extra ShellNew Cleaner.hta '* Author: kkf QQ:191111069 kkf009@gmail.com '* Created: September 2006 '* Version: 0.1 '* '* Description: Extra ShellNew Cleaner is a Scripting tool helping u '* clean the extra ShellNew in ur menu of right kick -- in VBScript. '* '* Dependencies: There are two (that i am aware of anyway): '* 1. You must run it on a WMI-enabled '* computer. Any Windows operating system that has '* the number 2000 or higher in its name, or XP, '* is a safe bet. '* 2. And to successfully run the scripts generated '* with ESC, well, you must be administrator. '* '* '******************************************************************** --> <title>Extra ShellNew Cleaner by kKF</title> <HTA:APPLICATION ID="ESCleaner" APPLICATIONNAME="Extra ShellNew Cleaner" SCROLL="no" SINGLEINSTANCE="yes" MAXIMIZEBUTTON="no" ICON="C:\Program Files\Windows NT\Pinball\PINBALL.EXE" MINIMIZEBUTTON="no" SHOWINTASKBAR="no" SINGLEINSTANCE="no" SYSMENU="yes" VERSION="1.0" WINDOWSTATE="maximize" > <head> <style> BODY { background-color:#gray;display:inline;filterrogidXImageTransform.microsoft.gradient(gradienttype=1,startColorStr=black,endColorStr=gray); color:#c0c0ee; font-family: Helvetica; font-size: 9pt; margin-top: 20px; margin-left: 8px; margin-right: 3px; margin-bottom: 3px; } .button { font-family: Helvetica; font-size: 8pt; width: 40px; } select { font-family: Arial; font-size: 8pt; size:6; margin-left: 0px; } </style> <script language=jscript> var width = 400; var height =250; //自定義視窗大小 window.resizeTo(width,height); window.moveTo ((window.screen.width - width)/2,(window.screen.height-height)/2); function Trim() { return str.replace(/^\s*|\s*$/g, "") //雖然vb自帶有 LTrim 和 RTrim } /************************************************************************* * * 新增要清除的列表 * * **************************************************************************/ function ESCadd(){ var objtTemp, flag =true for(var i=1;i<Inklist.options.length;i++){ if (Inklist.options[i].selected==true){ for (var j=1;j<Inkout.options.length;j++){ if(Inkout.options[j].innerText == Inklist.options[i].innerText) flag=false; } if ( flag == true ) { objTemp=document.createElement("option"); Inkout.options.add(objTemp); objTemp.innerText=Inklist.options[i].innerText; } flag = true; } } } /************************************************************************* * * 減少要清除的列表 * * **************************************************************************/ function ESCdel(){ var tmparr=new Array(); for(var i=1;i<Inkout.options.length;i++){ if (Inkout.options[i].selected==true){ // for (var j=1;j<Inkout.options.length;j++){ if(Inkout.options[j].innerText == Inklist.options[i].innerText)flag=false; } Inkout.options[i].removeNode(); } } } var Inktexts = new Array() var Inkextands=new Array() Inktexts.length=0 Inkextands.length=0 /************************************************************************* * * 獲得子鍵並顯示到 select 中 * * **************************************************************************/ function GetALine(filespec){ var fso, f, s, ForReading,m=-1; ForReading = 1, s = ""; fso = new ActiveXObject("Scripting.FileSystemObject"); if (fso.FileExists(filespec)){ f = fso.OpenTextFile(filespec, ForReading, false); while (!f.AtEndOfStream) { r= f.ReadLine( ); s=r.split("REG");m++ Inktexts[m]=s[0]; var objTemp=document.createElement("option"); Inklist.options.add(objTemp); objTemp.innerText = Inktexts[m]; } //Inklist(4).selected=true; Inklist.options.length= Inklist.options.length-2 //除去語言和一個不知道什麼東西的項 } else setTimeout(function(){ GetALine(tfolder +"\\ESCres.txt")},500) fso=null } window.onerror=function(err,d,l){alert(err+" >> "+l);return true} </script> <script language=vbs> dim tfolder, result, fso, f, temparray '************************************************************************* '* '* 本來想利用WMI弄成無閃的,但恕我愚蠢,我解決不了 '* 知道的大哥請告訴我,謝謝 執行文件 '* '**************************************************************************/ Function lunch(order) set process = GetObject("winmgmts:{impersonationLevel=impersonate}!Win32_Process") result = process.Create (order,null,null,processid) if result <> 0 then Msgbox "Error occur! Please try again." lunch = result End Function '************************************************************************* '* '* 最後的解決函數,其實就是刪除註冊表的相關項 '* '* '**************************************************************************/ Function solve() on error resume next dim WshShell, regpath1, regpath2, data, textend Set WshShell= CreateObject("WScript.Shell") regpath1 ="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew\" regpath2 ="HKEY_CLASSES_ROOT\" For i=1 to Inkout.options.length-1 data = WshShell.RegRead (regpath1 & Trim(Inkout.options(i).innerText)) textend =Chr(data(144)) & Chr(data(146)) & Chr(data(148)) WshShell.RegDelete(regpath2 & "." & textend & "\shellnew\") next For i=1 to Inkout.options.length-1 WshShell.RegDelete(regpath1 & Trim(Inkout.options(i).innerText)) next msgbox "Succeed!",64,"Here is the result:" window.location.reload End Function '************************************************************************* '* '* 讀取右鍵新增表菜單函數,除了寫到批處理文件用reg query 之外 '* 我想不到有什麼其他的方法能讀出註冊表的未知子項 '* '**************************************************************************/ Function ESCgg() Dim fso, ts set fso = createobject("scripting.filesystemobject") set tfolder = fso.GetSpecialFolder(2) set ts = fso.opentextfile( tfolder &"\ESCgg.bat", 2 , true) ts.writeline ("cd /d " & tfolder) ts.writeline ("reg.exe query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew | find " &chr(34) & "REG_" &chr(34) & " >ESClist.txt") ts.writeline ("del /q ESCres.txt") ts.writeline ("for /f " &chr(34) & "tokens=1* delims=_" &chr(34) & " %%i in (ESClist.txt) do @echo %%i>> ESCres.txt") ts.close set fso = nothing End Function ESCgg </script> <script language=jscript> function init() { setTimeout(function(){lunch(tfolder + "\\ESCgg.bat")},1) setTimeout(function(){ GetALine(tfolder +"\\ESCres.txt")},700) } window.onload = init </script> </head> <BODY> <ul> <li>Extra ShellNew Cleaner -bY KKF @2006.9.12 <li>本工具目的是為了清除右鍵新增的多餘表菜單。 <li>請尊重個人勞動,轉載請保留版權訊息。 </ul> <table > <tr > <td rowspan=4 width=44%><select id=Inklist name=Inklist multiple size=7><option>新增表菜單列表</select></td><td> </td><td rowspan=4 width=44%><select id=Inkout name=Inkout multiple size=7><option>清除表菜單列表</select></td></tr> <tr > <td ><input type=button value=" >> " hidefocus onclick=ESCadd()> </td></tr> <tr > <td ><input type=button value=" << " hidefocus onclick=ESCdel()> </td></tr> <tr > <td align=center style="cursor=hand"><span onclick="solve()">GO</span></td></tr> </table> |
__________________ |
|
送花文章: 3,
|
有 3 位會員向 psac 送花:
|
2006-09-15, 07:25 AM | #2 (permalink) |
榮譽會員
|
如何有效地清除開始表菜單-文檔子鍵下的歷史記錄
如何有效地清除開始表菜單-文檔子鍵下的歷史記錄 用右鍵在任務欄空白處單擊,選擇"內容-->開始表菜單-->自定義-->清除",但這不是長遠的方法. 在退出系統後自動清除記錄建議用方法一) 方法⒈ 開始-->執行,輸入gpedit.msc然後Enter鍵,選擇"用戶配置-->管理模板-->任務欄和開始表菜單",在右邊視窗雙擊「不要保留最近打開文擋的紀錄」和「退出時清空……」兩項,設置為「已啟用」. 方法⒉ 開始-->執行,輸入「Regedit」打開註冊表編輯器,定位到「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer」,然後新增一個名為ClearRecentDocsOnexit的Dword值,將其值改為1(為0時表示不清除). |
送花文章: 3,
|
2006-10-11, 07:50 AM | #3 (permalink) |
榮譽會員
|
常用播放器右鍵表表菜單清理, Windows Media Player; RealPlayer; 暴風影音
算是無奈裝系統裝出來的經驗吧..分享一下.. 不需要安裝軟件,但需要手動修改註冊表,因此修改前請一定參照說明,並好相應備份!!! 針對三種常用播放器:Windows Media Player;RealPlayer;暴風影音(Media Player Classic) 1.Windows Media Player 未清理前的右鍵表表菜單 查找註冊表HKEY_CLASSES_ROOT找到CLSID下的 {CE3FB1D1-02AE-4a5f-A6E9-D9F1B4073E6C} - Play As Playlist {F1B9284F-E9DC-4e68-9D7E-42362A59F0FD} - Add To Playlist {8DD448E6-C188-4aed-AF92-44956194EB1F} - Burn Audio CD 刪除上述三項後,還需開啟資料夾選項-文件類型 逐一選中被Windows Media Player關聯的文件 點擊"高階" 如圖選中播放(P)點擊"編輯" 在彈出視窗點擊"確定",再次點擊"確定" 即可完成對關聯為Windows Media Player播放的文件右鍵表表菜單的清理. 清理後的右鍵表表菜單 2.RealPayer 雖然Real格式已經被大多播放器完美相容,不過RealPlayer還是有一定的使用人群. RealPlayer關聯文件的右鍵表表菜單,有龐大的一串,如果你也用不到,讓咱們清理一下. 查找註冊表HKEY_CLASSES_ROOT找到CLSID下的 {F0CB00CD-5A07-4D91-97F5-A8C92CDA93E4} - RealOne Player Context Menu Class 刪除這個鍵值即可完成清理. 3.暴風影音(Media Player Classic) 它可以給你一個較為完備的解碼器包,通吃絕大多數影音文件,裝機必備. 它的右鍵表表菜單 它的清理並不複雜可是要做的工作也比較多, 當然完全可以在資料夾選項-文件類型裡逐一修改. 我還是用註冊表編輯器進行修改. 如圖你可以搜索"用 MPC 播放" 找到被暴風影音關聯的文件都在HKEY_CLASSES_ROOT_mplayerc.*** 逐一刪除各延伸名shell分支下的play_enqueue,然後把open右側預定修改為"播放(&P)"即可 修改後的右鍵表表菜單 |
送花文章: 3,
|