这里是情况。我工作的公司使用c语言编写这个软件,可以使Windows电脑的操作有点像电视。实质上,我们的软件意味着全屏播放,并且从互联网上显示内容,而用户不必再次触摸计算机。避免来自其他软件的所有系统消息和消息
的问题是,在一段时间后,系统将弹出的弹出窗口,如“您的Windows系统已准备好进行升级。”或“请更新您的诺顿订阅”等,用户必须定期和手动删除。
有没有一种方法来显示内容全屏幕而不被这些警告打扰?
这里是情况。我工作的公司使用c语言编写这个软件,可以使Windows电脑的操作有点像电视。实质上,我们的软件意味着全屏播放,并且从互联网上显示内容,而用户不必再次触摸计算机。避免来自其他软件的所有系统消息和消息
的问题是,在一段时间后,系统将弹出的弹出窗口,如“您的Windows系统已准备好进行升级。”或“请更新您的诺顿订阅”等,用户必须定期和手动删除。
有没有一种方法来显示内容全屏幕而不被这些警告打扰?
严,开发社区是否不同意,微软对何时以及为什么它可能是可以接受的专用显示器的几个标准。
最正式的策略是在独占模式下使用DirectX。这就是做游戏,媒体播放器硬件加速全屏视频功能等做了什么窗户...... 如果你的应用是多媒体密集型(由电视所建议的一样的功能),你或许应该使用的DirectX太。除了给你独占显示访问权限外,它还可以提高你的应用程序性能,同时降低CPU负载(因为它可能会使图形工作超载到视频卡上)。
如果DirectX不是一个选项,那么可用的大量黑客行为似乎在各代Windows操作系统之间表现出不同的行为。因此,您可能必须准备好实施多种技术来涵盖您计划支持的每个操作系统。
一种技术是将您的应用程序设置为当前正在运行的屏幕保护程序。一个屏幕保护程序,如果真的只是一个EXE重命名为SCR,它应该支持某些命令行开关。但是,你可以编写自己的应用程序,使其成为一个屏幕保护程序和一个启动程序存根,将其设置为屏幕保护程序并启动它。退出时,应用程序应返回原始屏幕保护程序设置(也许启动程序会等待进程退出,以便返回优雅退出和任何计划外进程终止(即:应用程序崩溃)中的设置)。我不确定这种行为是否跨平台一致,但您必须对其进行测试。
防止其他应用程序创建窗口句柄是真正的在我看来,一个黑客和非常糟糕的一个,我不会欣赏这样的软件的客户。
恒定BringWindowToTop()
通话,让你在面前的是更好的(它不会破坏其他软件),但还是有点劈十岁上下。
使用全局钩子捕获窗口创建消息。这样,您可以在不需要的窗口变为可见之前关闭或隐藏窗口。
编辑:如果你确实想避免挂钩,那么你可以定期调用一个函数,这会让你的窗口到达z堆栈的顶部。
我觉得这样的钩子有点矫枉过正...... S –
几年前我有同样的问题,找不到更简单的方法。尤其难看的是,您必须使用DLL作为全局钩子的代码。 – kol
您可以禁用系统更新http://support.microsoft.com/kb/901037并删除norton恶意软件。
您还可以连接第二个屏幕,以便气泡出现在第一个显示器中。
或者你重写它的Linux或Windows CE。
最后一个选项是安装重新配置你的操作系统进入亭http://shop.inteset.com/Products/9-securelockdown.aspx
如果您不需要键盘或鼠标的输入法软件,如何运行你的应用程序作为screensaver?
许多thoses消息由Windows资源管理器触发/管理。 只需用您的虚拟c#/ winform替换它。 通过更改注册表值
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Shell"="Explorer.exe"
您可以指定几乎所有的exe文件,以替代EXPLORER.EXE 这是所有基于Windows的(嵌入式)系统(ATM &共)做的方式。 还有一些调整(禁用你不需要的服务/ dr watson &其他),当然,你会想保持一个“重启explorer.exe”的后门。 但这是一个好开始
通过这种方式,您可以直接从Microsoft获得特定且高效的支持(如果需要),而且大多数情况下不会受到任何肮脏的黑客攻击。 – 131
Windows更新消息可能会被浏览器触发,但绝对不是第三方“敬酒”。除了提到的诺顿,还有MS Outlook,Google Talk,MSN Messanger等等。作为一名C#开发人员,我甚至可以在一些不依赖于浏览器的应用程序中创建自己的Toast消息。我想我上面的假设是,这是一个消费者应用程序,而不是嵌入式设备,或者他们可能会授权微软的嵌入式操作系统,如XP嵌入式。这是一个精简版的Windows,专门用于作为专用设备的建议。 – BenSwayne
Hmya,这些消息是非常重要的。认为你的应用程序是最重要的是一场难以取胜的战斗。压制“主板着火”的通知也是颇有疑问的。你必须说服Windows用户正在使用该窗口。有点困难与电视应用程序。使用SendInput()函数可以生成一些假输入。 –
大声笑,我不知道有一个“主板是着火”通知 – Randomblue
你可以用喷火枪测试它。 –