【发布时间】:2013-12-18 19:16:51
【问题描述】:
我正在编写一个 Delphi 应用程序。我的目标是用我的应用程序覆盖所有屏幕,以强制用户填写我的表格。应用程序将作为计划任务运行。
我的问题是,通常情况下,Windows 不允许应用程序阻止其他用户的操作。
在 Windows 7 中,我可以将我的应用程序作为 scr 文件(屏幕保护程序)运行,没有标题栏并设置 StayOnTop。在这种情况下,其他应用程序即使在“窗口键”(开始)上可见,也会留在我的应用程序后面,所以我的目标达到了。
不幸的是,在 Windows 8 中,这个解决方案不起作用,因为“窗口键”显示开始屏幕,当我可以运行任何东西并且这个“任何东西”保持在顶部时。
我用下面的代码尝试了一些技巧,但没有成功。
h := FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil);
ShowWindow(h,0);
Windows.SetParent(h,0);
如何在整个 Windows 8 系统中阻止“窗口键”(开始按钮)动作?
【问题讨论】:
-
您可以查看将 explorer.exe shell 替换为您的应用程序。这非常适合创建一个完全独立的应用程序。我已经通过重新编程我的应用程序以在关闭时执行 explorer.exe 来做到这一点。
-
是的,我知道...我也曾经使用过这个解决方案,当时某个工作站上唯一允许的应用程序是我的。在这种情况下我不能使用它,但还是谢谢你:)
标签: windows delphi windows-8 screen