我們可以通過修改mui文件去除一些預(yù)覽版顯示字樣,但是隨著系統(tǒng)的版本越來越高,傳統(tǒng)的修改MUI文件方法已經(jīng)無效。這里就為大家?guī)硪豢钊碌娜コ『蛷棿暗男」ぞ撸行枰目梢韵螺d。
使用說明
一、LoadStringW函數(shù)
windows在窗體上顯示的字符串大部分是從mui文件里提取,比如上面的① 里面,就是winver.exe的同名文件winver.exe.mui里提取。
怎么取呢,就是通過user32.dll里的一個(gè)函數(shù)LoadStringW,可以去MSDN了解下這個(gè)函數(shù)的具體定義,各個(gè)參數(shù)分別代表什么。
比如我要取出101中的“Windows”,通過代碼實(shí)現(xiàn)就是:
wchar_t lpBuff[128];
HINSTANCE handle = LoadLibraryW(L“C:\\Windows\\System32\\zh-CN\\winver.exe.mui”);
int ret = LoadStringW(handle,101,lpBuff,128);
復(fù)制代碼
這個(gè)lpBuff緩沖就是放讀取到“Windows”字樣。
知道這個(gè)原理,我們就可以對一些不想要的字符串進(jìn)行攔截處理。比如這里,當(dāng)讀取資源102的時(shí)候,把“評估副本,過期時(shí)間”給清空掉。
攔截方法大致是這樣,具體代碼看我的github。
int WINAPI myLoadStringW(HINSTANCE hInt, UINT uid, LPWSTR lpBuffer, int sizeBuffer)
{
int res= DLoadStringW(hInt, uid, lpBuffer, sizeBuffer);
if (uid == 102)
{
memset(lpBuffer, ‘\0’, sizeBuffer);
}
return res;
}
復(fù)制代碼
memset就是用來清空當(dāng)讀到資源id102的時(shí)候的內(nèi)容。
二、BrandingFormatStringForEdition函數(shù)
圖中的②處的一整套字符串也是通過上面的LoadStringW從shell.dll.mui中讀取。
但是與上面不同的是這里帶了個(gè)變量:“%WINDOWS_LONG%”,這個(gè)就是用來獲取Windows版本名稱的。從哪里來的呢,通過調(diào)試發(fā)現(xiàn)是從winbrand.dll的函數(shù)BrandingFormatStringForEdition調(diào)用而來。
過程就是:上代碼
wchar_t lpBuffer[128] = L“%WINDOWS_LONG%”;
wchar_t* result = BrandingFormatStringForEdition)(lpBuffer, EditionId, 128);
復(fù)制代碼
這里的EditionId就是平時(shí)說的skuid,版本ID,你想顯示什么都可以在這個(gè)EditionId上動手腳。
但這里只是想把“Insider Preview”字樣去掉:
wchar_t* WINAPI myBrandingFormatStringForEdition(const wchar_t* lpBuffer, int EditionId, unsigned int size)
{
wchar_t* res = pBrandingFormatStringForEdition(lpBuffer, EditionId, size);
if (wcsstr(res, L“ Insider Preview”) != 0)
{
//省略替換的代碼
}
return res;
}
復(fù)制代碼
類似的還有“%MICROSOFT_COMPANYNAME% %WINDOWS_GENERIC%”、“%WINDOWS_COPYRIGHT%”等等。
三、去除過期時(shí)間字樣
剩下就是圖中的③,日期加時(shí)間。
與時(shí)間有關(guān)的函數(shù)就那么幾個(gè):FileTimeToSystemTime、FileTimeToLocalFileTime、GetTickCount、GetDateFormat、GetTimeFormat這些。
不管它的通過什么算法獲取過期時(shí)間或者怎么判斷系統(tǒng)當(dāng)前是否已經(jīng)過期,你總得定義輸出的格式。只要把GetDateFormat、GetTimeFormat攔住,你怎么修改格式都可以。甚至消除掉:
int WINAPI myGetDateFormatW(LCID Locale, DWORD dwFlags, const SYSTEMTIME* lpDate, LPCWSTR lpFormat, LPWSTR lpDateStr, int cchDate)
{
int res = DGetDateFormatW(Locale, dwFlags, lpDate, lpFormat, lpDateStr, cchDate);
memset(lpDateStr, ‘\0’, cchDate);
return res;
}
復(fù)制代碼
2022可以免費(fèi)去水印的軟件,真正免費(fèi)去水印軟件大全,小編今天為大家推薦一下可以免費(fèi)去水印的軟件,用戶們能夠輕松的去除圖片和視頻的水印,需要的趕快來看看吧。
系統(tǒng)其它
系統(tǒng)其它
系統(tǒng)其它
系統(tǒng)其它
系統(tǒng)其它
系統(tǒng)其它
MindLine官方最新版是一款很棒的思維導(dǎo)圖,該軟件不僅界面很簡潔,功能一目了然,方便用戶展開操作。在MindLine官方最新版中,用戶可以便捷地?cái)U(kuò)張分支,只需要點(diǎn)擊加號,然后輸入相應(yīng)的文字,長...
千鹿設(shè)計(jì)助手集成AI功能,可輕松對接多款設(shè)計(jì)軟件,幫助用戶快速生成設(shè)計(jì)師需要的圖像內(nèi)容,縮短手動設(shè)計(jì)、編輯圖像和處理日常任務(wù)的時(shí)間,顯著提升工作效率。千鹿設(shè)計(jì)助手界面簡潔明了,操作輕...
快手直播伴侶是一款功能多樣的直播輔助軟件,可以幫助主播進(jìn)行一系列的直播活動?焓种辈グ閭H提供電商、游戲、團(tuán)購等多種直播場景,滿足更多主播的直播需求。軟件界面簡潔明了,操作輕松易上手...
易譜ziipoo是專業(yè)的樂譜制作軟件,擁有樂譜自動排版、動態(tài)分譜查看等不同功能,讓您可以輕松制作樂譜。易譜ziipoo還提供了樂譜制作播放、字體樣式調(diào)整以及節(jié)拍小節(jié)編輯功能,滿足您不同的樂譜調(diào)...
斗魚PC客戶端具有個(gè)性化彈幕樣式、實(shí)時(shí)錄制直播、畫中畫播放等功能,并支持用戶與主播實(shí)時(shí)互動,帶給用戶全新的直播體驗(yàn)。斗魚PC客戶端提供了英雄聯(lián)盟、絕地求生、王者榮耀等熱門游戲直播內(nèi)容,...
UpdatePack7R2(Win7更新補(bǔ)丁包)是一款專為Win7用戶設(shè)計(jì)的更新離線補(bǔ)丁包,它匯聚了自發(fā)布以來的所有官方Windows更新,包含累積更新、安全補(bǔ)丁等。這些更新可以提供系統(tǒng)的穩(wěn)定性、性能和安全性改...
發(fā)表評論
共0條
評論就這些咯,讓大家也知道你的獨(dú)特見解
立即評論以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場