2016-09-26 176 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

相关问题