史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-09-14, 10:21 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 系統 - 除掉右鍵新增多餘表菜單

除掉右鍵新增多餘表菜單

自從裝了新軟件後,滑鼠右鍵的新增表菜單有時候就會多出一個新的選項,每次新增那個選項就長長的一列,看上去就不爽。所以萌生了手動去掉這些多餘表菜單的念頭。略略百度了一下,沒有找到有用的訊息。
或者有的人說,那還不簡單!用優化大師或者兔子或者什麼軟件就很容易去掉了。省心。簡單,便捷。那麼我要說一句,請您不要再看下去了。這篇菜鳥心得不值得您浪費時間。請忙您的事情去吧。
繼續我的「清除行動」,很容易就找到 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>&nbsp;</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()>&nbsp;&nbsp;&nbsp;</td></tr>
<tr >
<td ><input type=button value=" << " hidefocus onclick=ESCdel()>&nbsp;&nbsp;&nbsp;</td></tr>
<tr >
<td align=center style="cursor=hand"><span onclick="solve()">GO</span></td></tr>
</table>
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
有 3 位會員向 psac 送花:
anotherlevel (2007-08-09),poss (2006-09-17),祥仔 (2006-10-13)
感謝您發表一篇好文章
舊 2006-09-15, 07:25 AM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

如何有效地清除開始表菜單-文檔子鍵下的歷史記錄

如何有效地清除開始表菜單-文檔子鍵下的歷史記錄

用右鍵在任務欄空白處單擊,選擇"內容-->開始表菜單-->自定義-->清除",但這不是長遠的方法.

在退出系統後自動清除記錄建議用方法一)
方法⒈
開始-->執行,輸入gpedit.msc然後Enter鍵,選擇"用戶配置-->管理模板-->任務欄和開始表菜單",在右邊視窗雙擊「不要保留最近打開文擋的紀錄」和「退出時清空……」兩項,設置為「已啟用」.

方法⒉
開始-->執行,輸入「Regedit」打開註冊表編輯器,定位到「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer」,然後新增一個名為ClearRecentDocsOnexit的Dword值,將其值改為1(為0時表示不清除).
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-10-11, 07:50 AM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

常用播放器右鍵表表菜單清理, Windows Media Player; RealPlayer; 暴風影音
算是無奈裝系統裝出來的經驗吧..分享一下..
不需要安裝軟件,但需要手動修改註冊表,因此修改前請一定參照說明,並好相應備份!!!
針對三種常用播放器:Windows Media Player;RealPlayer;暴風影音(Media Player Classic)
1.Windows Media Player
未清理前的右鍵表表菜單
http://static.flickr.com/70/265804035_2a88021a67_o.png
查找註冊表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
刪除上述三項後,還需開啟資料夾選項-文件類型
http://static.flickr.com/112/265804037_08bb6c56bc_o.png
逐一選中被Windows Media Player關聯的文件 點擊"高階"
如圖選中播放(P)點擊"編輯" 在彈出視窗點擊"確定",再次點擊"確定"
即可完成對關聯為Windows Media Player播放的文件右鍵表表菜單的清理.
清理後的右鍵表表菜單
http://static.flickr.com/79/265804039_a09a82bcae_o.png
2.RealPayer
雖然Real格式已經被大多播放器完美相容,不過RealPlayer還是有一定的使用人群.
RealPlayer關聯文件的右鍵表表菜單,有龐大的一串,如果你也用不到,讓咱們清理一下.
http://static.flickr.com/82/265804041_4ac94a1802_o.png
查找註冊表HKEY_CLASSES_ROOT找到CLSID下的
{F0CB00CD-5A07-4D91-97F5-A8C92CDA93E4} - RealOne Player Context Menu Class
刪除這個鍵值即可完成清理.
http://static.flickr.com/110/265804042_a315251fea_o.png
3.暴風影音(Media Player Classic)
它可以給你一個較為完備的解碼器包,通吃絕大多數影音文件,裝機必備.
它的右鍵表表菜單
http://static.flickr.com/91/265804043_1e183c9b5b_o.png
它的清理並不複雜可是要做的工作也比較多,
當然完全可以在資料夾選項-文件類型裡逐一修改.
我還是用註冊表編輯器進行修改.
如圖你可以搜索"用 MPC 播放"
找到被暴風影音關聯的文件都在HKEY_CLASSES_ROOT_mplayerc.***
逐一刪除各延伸名shell分支下的play_enqueue,然後把open右側預定修改為"播放(&P)"即可
http://static.flickr.com/80/265804576_1a0e927c74_o.png
修改後的右鍵表表菜單

http://static.flickr.com/122/265804577_15b8ab55bc_o.png
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:26 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1