我一直在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,在前面的回答中有详细说明,但我只是没有通过代码来做。