【问题标题】:How to overcome full-screen app if I want to show my app如果我想展示我的应用程序,如何克服全屏应用程序
【发布时间】:2010-06-30 15:07:55
【问题描述】:

在某些情况下,需要根据一些不涉及键盘鼠标活动的事件(来自硬件或基于时间)来启动进程。它通常与 ShellExecute 和 ShellExecuteEx 一起使用,但如果有一个全屏应用程序(那个,创建的无边框与屏幕尺寸完全相同),这个启动的应用程序不会变得活跃甚至不可见。是否有一种技术可以将此类应用程序置于此全屏应用程序之上?我知道 ShellExecuteEx 和 hProcess 操作,但它似乎涉及最近的 api (GetProcessId),并且似乎这个函数有一些与用户权限相关的限制。

谢谢

【问题讨论】:

  • 您是否尝试过设置“始终位于顶部”?
  • 窃取焦点是大多数用户的一大烦恼。我会认真思考这是否是个好主意。想想你会激怒的所有玩家。

标签: windows shell winapi


【解决方案1】:

你可以使用

SystemParametersInfo (SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (PVOID)0,
                      SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE);

在流程开始之前执行此操作,但您应该按照How to ensure process window launched by Process.Start(ProcessStartInfo) has focus of all Forms? 中的说明临时执行此操作。

请仅在您真正需要在顶部启动进程时执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多