前段時間,使用的Win8.1系統出現了一個很奇怪的問題,系統的標題欄,圖標等字體會莫名奇妙地變大,而且通過“顯示”設置回正常大小之后,不一會兒又突然變大了。
經過觀察,這個行為是運行某些程序時會觸發的,例如我的myeclipse中一啟動tomcat,系統的字體就會突然變大。
由於查找不到觸發這個行為的那個點,也因為不是正版系統,所以覺得也可能是系統bug,找不到什么思路可以抑制這個行為的觸發,所以需要換個思路。
經過思考和實驗,發現字體的變化是通過修改注冊表中相關的項來實現的,因為每次字體變化之后,注冊表中相關的項的值也會變化,又發現注冊表可以對注冊表項進行權限管理。於是就產生了通過禁止當前用戶對注冊表項的修改權限來抑制字體變化這個思路。
注冊表中字體相關的項位於:
對於當前用戶,是在HKEY_CURRENT_USER/Desktop/路徑下,一般是鍵名是**Font;
另外,還有個系統默認的項:在HKEY_USERS/.DEFAULT/Desktop/路徑下,每個用戶剛創建時應該是從這里繼承了初始的注冊表配置,然后每個用戶都可以在此基礎上進行個性化的配置
由於我們個人PC的用戶一般直接都是管理員,所以相當於我們需要禁止管理員對這些相關注冊表項/目錄的修改權限。於是乎,我們會發現,這么一禁止之后,管理員好像再也訪問不了,也修改不了這些表項,有時我們還是需要調整一下字體什么的。管理員好像是最高權限了,如果連管理員都管理不了,那是不是這個東西就這樣動不了呢?經過一番折騰,發現了其實對於文件權限,管理員並非是“權威”的,其實一般來說文件的“所有者(owner)”才是具有最高權限。
注冊表項的權限管理中的“高級”中有關於所有者的更改項,不過現在的問題是我們作為管理員已經被禁止了對於這些項的包括權限管理在內的權限,那怎么辦呢?我嘗試了,對設置了禁止權限的項的上一級目錄進行配置,這是可行的,配置了上一級目錄的高級權限中的所有者為當前用戶,並勾選應用於子對象和子容器這個選項,就可以從該目錄開始逐級地應用該修改,於是被禁止了權限的項的所有者也被設置為當前用戶了,確定權限修改之后。我們會發現原來被禁止修改的項已經可以被當前用戶修改了,我們進行所需的修改之后,可以把這些項的所有者改為除了當前用戶的其他用戶,這樣又可以保證在非必要的情況下不會被一些程序修改。