情况是这样的。我工作的公司用 c 构建了这个软件,可以使 Windows 计算机有点像电视。从本质上讲,我们的软件旨在全屏播放,并且从互联网上显示内容,而无需用户再次触摸计算机。
问题是系统偶尔会弹出“您的 Windows 系统已准备好升级”之类的弹出窗口。或“请续订您的诺顿订阅”等用户必须定期手动删除的内容。
有没有一种方法可以全屏显示内容而不会被这些警告打扰?
最佳答案
是的,无论开发社区是否同意,对于何时以及为何可以独占使用显示器,Microsoft 有多个标准。
最官方的策略是以独占模式使用DirectX。这就是游戏所做的,windows media player 在启用硬件加速的全屏视频中所做的,等等... 如果您的应用程序是多媒体密集型的(如电视功能所建议的那样),您也应该使用 DirectX。除了为您提供独占显示访问权限外,它还可以提高您的应用程序性能,同时降低 CPU 负载(因为它会在可能的情况下使视频卡的图形工作过载)。
如果 DirectX 不是一个选项,则有大量的 hack 可用,这些 hack 在不同代的 Windows 操作系统之间似乎都有不同的行为。因此,您可能必须准备好实现多种技术来涵盖您计划支持的每个操作系统。
一种技术是将您的应用程序设置为当前正在运行的屏幕保护程序。一个屏幕保护程序,如果真的只是一个重命名为 SCR 的 EXE,它应该支持某些命令行开关。但是您可以将自己的应用程序编写成这样的屏幕保护程序和一个将其设置为屏幕保护程序并启动它的小启动器 stub 。退出时,应用程序应返回原始屏幕保护程序设置(也许启动器等待进程退出,以便它在正常退出和任何计划外进程终止时返回设置,即:应用程序崩溃)。不过,我不确定这种行为是否跨平台一致,您必须对其进行测试。
在我看来,阻止其他应用程序创建窗口句柄确实是一种黑客行为,而且非常糟糕,作为此类软件的客户,我不会感激。
不断调用 BringWindowToTop() 以保持领先(它不会破坏其他软件)更好(它不会破坏其他软件),但仍然有点 hack-ish。
关于c - 避免所有系统消息和来自其他软件的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009573/
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested
我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c
我正在处理旧代码的一部分。beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)endRubocop错误如下:Avoidstubbingusing'allow_any_instance_of'我读到了RuboCop::RSpec:AnyInstance我试着像下面那样改变它。由此beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)end对此:let(:sport_
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c
我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我