如何用c++将Windows 7锁定为一个程序



我一直在Visual Studio 2015 (c++)中开发一个应用程序。这是我们学校技术支持的软件。基本上,它是一个支持站点,将在一个kiosk中运行。我需要弄清楚如何锁定窗口,所以它只运行那个程序。在全屏模式下运行程序也会很有帮助。请记住,所有的信息亭都运行Windows 7。

设置注册表项

HKCU SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
Shell="c:pathtowhatever.exe"

通过taskmgr.exe的安全性禁用任务管理器(在二进制文件中添加一个deny read + deny execute)

设置autologn:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
DefaultUserName = whatever
DefaultPassword = whatever

手边有一个引导盘。扭转这种情况的唯一方法是引导引导磁盘,并在安装适当的hive后撤消其中一个步骤。

你可以在全屏模式下创建主窗口和弹出窗口:

    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

我实际上是从c++切换到c#的,所以我将用c#来解释我的答案。

我使用键盘钩子库来捕获键盘输入并阻止所有非字母/数字输入,因此alt-f4, alt-tab等将不起作用。然后,我使用另一个键盘钩子(LWin+C+Home+F12+PrtSc)确定了字符的关闭序列。

至于Ctrl-Alt-Del,它不能被禁用(据我所知),因为它是一个系统功能,所以我就把它留在那里。

我还得到了屏幕的边界,并将窗口的大小设置为应用程序启动时的最大屏幕大小,以及应用程序调整大小或移动时的最大屏幕大小。这使得应用程序覆盖了任务栏,关闭和最小化按钮的栏也被覆盖,但如果有人找到了移动它的方法,它会立即恢复到原来的大小。

我也设置了auto - ologin,在前面的回答中有详细说明,但我只是没有通过代码来做。

相关内容

最新更新