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