程序开机全屏且不能见任何windows界面、不能使用系统热键
需求的提出:
第1點(diǎn)很容易實(shí)現(xiàn),程序全屏這個(gè)很容易,當(dāng)今主流的C++開發(fā)包,如:MFC、qt等都能做到。
第2點(diǎn)編程實(shí)現(xiàn)有難度,但可以通過windows注冊(cè)表和組策略來實(shí)現(xiàn)。win環(huán)境下,用你的程序代替explorer.exe啟動(dòng),就可以實(shí)現(xiàn)不能見到任何windows界面,不能見到資源管理器、任務(wù)欄;win?、win + L按鍵不起作用,方法如下:
有兩種方式可以快速完成以上效果
a:“運(yùn)行” 輸入“%windir%\system.ini”,“確定”
在“; for 16-bit app support”首行下按回車鍵加入以下兩行內(nèi)容,保存
[boot]?
shell=你程序的絕對(duì)路徑
例如:
[boot]
shell=D:\Test\fuck.exe
b:“運(yùn)行” 輸入“regedit”,打開注冊(cè)表
找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
修改該分支下的Shell值“explorer.exe”為“D:\Test\fuck.exe”
OK,重啟,搞定。
其中b方法的C++代碼實(shí)現(xiàn)如下:
void CEmergencyModeWnd::doWinExplorer(bool bEnableoWinExplorer/* = false*/) {bool bRet = false;HKEY hKey;wstring strRegPath = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon";// 1、找到系統(tǒng)的啟動(dòng)項(xiàng) if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, strRegPath.c_str(), 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) ///打開啟動(dòng)項(xiàng) {// 2、得到本程序自身的全路徑TCHAR strExeFullDir[MAX_PATH];GetModuleFileName(NULL, strExeFullDir, MAX_PATH);if (!bEnableoWinExplorer){RegSetValueEx(hKey, L"Shell", 0, REG_SZ, (LPBYTE)strExeFullDir, (lstrlen(strExeFullDir) + 1) * sizeof(TCHAR));}else{RegSetValueEx(hKey, L"Shell", 0, REG_SZ, (LPBYTE)L"explorer.exe", (lstrlen(L"explorer.exe") + 1) * sizeof(TCHAR));}RegCloseKey(hKey);} }?
ALT + CTL + DEL組合鍵可以通過組策略來實(shí)現(xiàn),參考《如何禁用ALT+CLT+DEL組合鍵》,需要說明的是:這樣當(dāng)自己編寫的程序崩潰時(shí),因?yàn)椴荒芤姷饺魏蝫indows界面,不能見到資源管理器、任務(wù)欄、win?、win + L、ALT + CTL + DEL組合鍵等系統(tǒng)鍵都不能用,除了重裝系統(tǒng)外,別無它法,也就是我們所說的肉雞。為了解決肉雞問題,我們需要留個(gè)后門,
比如:當(dāng)自己編寫的程序開機(jī)運(yùn)行起來后第一個(gè)界面出現(xiàn)時(shí),在該界面類中實(shí)現(xiàn)按clt + shift +k鍵能調(diào)出如下界面進(jìn)行急救(注意:這個(gè)界面應(yīng)該保證無論如何都不會(huì)出現(xiàn)異常、崩潰從而導(dǎo)致出不來,否則下面的方法依然不能解決肉雞問題):
啟用windows程序管理器、禁用windows程序管理器就是調(diào)用上面的函數(shù)從而將HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon中的shell改為自己的程序或者是windows程序管理器explorer.exe(這樣開機(jī)時(shí)就可以進(jìn)入桌面,看到windows的界面和資源管理器了),打開注冊(cè)表用C++代碼實(shí)現(xiàn)如下:
system("regedit.exe");打開組策略代碼如下:
system("gpedit.msc");這樣就可以通過操作注冊(cè)表來手動(dòng)更改?HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon中的shell是改回windows程序管理器explorer.exe(這樣開機(jī)時(shí)就可以進(jìn)入桌面,看到windows的界面和資源管理器了)、手動(dòng)更改組策略從而啟動(dòng)任務(wù)管理器,如下:
單擊右側(cè)紅色框中項(xiàng),來啟用相應(yīng)的項(xiàng),如:任務(wù)管理器
選擇”未配置“或者”已禁用“則就開啟了相應(yīng)的項(xiàng),如:任務(wù)管理器?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的程序开机全屏且不能见任何windows界面、不能使用系统热键的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 550元 富士发布Instax Mini
- 下一篇: 如何禁用ALT+CLT+DEL组合键