.net - 使 Windows 应用程序始终位于其他窗口之上并处于焦点位置 - 始终

标签 .net wpf windows fullscreen kiosk

我正在创建一个 kiosk 应用程序,我想确保它无论如何始终位于其他 Windows 应用程序和 Windows 任务栏之上。

我已经阻止了 Windows 键盘命令(alt-tab 等),但仍有可能导致应用程序启动并窃取屏幕的情况。

是否可以从 .NET 挂接到 Windows 并持续测试应用程序是否具有焦点并位于顶部,如果没有,则为其提供焦点并使其位于顶部?

最佳答案

我实际上在生产信息亭上工作过(不过它是 Windows 2000)。解决方案是将我们的应用程序作为 shell 运行。您可以通过在 Shell 值中用您的应用程序替换 Explorer.exe 来部分完成此操作:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

参见 here了解更多信息。

现在,我们确实有一个 secret 的(错误的……模糊的)方法来关闭我们的应用程序。然后我们会调出任务管理器(Ctrl-Shift-Esc)并选择文件/新建任务来运行 Explorer.exe 调出一个shell 就在那儿。

顺便说一句,当您在这样的系统上工作时,您自然会非常熟练地使用键盘以及在 Windows 中使用键盘快捷键意味着什么,因为您可能没有方便的方式或位置来放置鼠标。

关于.net - 使 Windows 应用程序始终位于其他窗口之上并处于焦点位置 - 始终,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444842/

相关文章:

c# - 在 Linq to Sql 中调用 InsertOnSubmit 时出现 NullReferenceException

.net - 休眠环境 : auditing an entity already in production

c# - 防止应用程序关闭

c++ - 如何在 Windows 上使用 Vim 中的开发者命令提示符命令行?

c++ - zmq_send() 线程安全吗?

Windows 2003 与 Windows 2008 中的 Java Web 应用程序性能

.net - WPF GridSplitter 使用 MinWidth 调整大小

c# - 嵌入式 WebBrowser Web 控制台访问

c# - IReactiveBinding 不适用于 IDataErrorInfo

wpf - 使XamDataGrid新行中的特定列不可编辑