2016-09-26 46 views
2

我一直在Visual Studio 2015(C++)中開發應用程序。這是我學校技術支持的自助服務終端應用程序。基本上,它是一個支持站點,可以在信息亭中運行。我需要弄清楚如何鎖定窗口,以便它只運行該程序。以全屏模式運行程序也會有所幫助。請記住,所有通過的TaskMgr.exe的安全如何使用C++將Windows 7鎖定到單個程序中?

+2

Windows 7有一個「信息亭模式」。你應該可以使用它來做你想做的事。 – ChrisF

+0

@ChrisF - 不,它確實沒有。 – rustyx

回答

0

我實際上從C++切換到C#,所以我要解釋我的答案與C#。

我用鍵盤鉤子庫來捕獲鍵盤輸入並阻止所有非字母/數字輸入,所以alt-f4,alt-tab等不起作用。然後我使用另一個鍵盤鉤子(LWin + C + Home + F12 + PrtSc)確定了一系列字符的結尾。

至於Ctrl-Alt-Del,它不能被禁用(據我所知),因爲它是一個系統函數,所以我只是保持原樣。

我還得到了屏幕的邊界,並將窗口的大小設置爲應用程序啓動時的最大屏幕大小,以及每當應用程序調整大小或移動時。這實際上使得應用程序覆蓋了任務欄,並且包含關閉和最小化按鈕的欄也被覆蓋,但如果有人找到了移動它的方法,它會立即返回到它的全尺寸。

我還設置了autologin,就像在之前的回答中詳細說明的那樣,但我只是沒有通過代碼來完成。

5

設置註冊表項

HKCU SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 
Shell="c:\path\to\whatever.exe" 

不允許任務管理器運行Windows 7的信息亭(加拒絕讀取+否認執行二進制)

Set autologn:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 
DefaultUserName = whatever 
DefaultPassword = whatever 

有一個方便的啓動磁盤。解決這個問題的唯一方法是在安裝合適的配置單元后啓動引導磁盤並撤消其中一個步驟。

0

您可以在全屏模式和彈出主窗口創建程序:

hWnd = CreateWindowEx(WS_EX_CLIENTEDGE|WS_EX_APPWINDOW|WS_EX_TOPMOST, 
        lpClsName, 
        "MDI Project under Visual C++ WINAPI", 
        WS_BORDER|WS_POPUP, 
        ...);// add the remaining parameters 

,找到的TaskMgr.exe和隱藏它和開始菜單按鈕,並隱藏他們:

hTaskBar = ::FindWindow ("Shell_TrayWnd", ""); 
hStart = ::FindWindowEx(GetDesktopWindow(), NULL, "Button", "Start");   
ShowWindow(hTaskBar, SW_HIDE); 
ShowWindow(hStart, SW_HIDE); 

所以你的程序看起來像easycafe或handycafe

相關問題