C# 通过时间(而不是用户交互)自动将应用程序从最小化模式带入前台(顶部最大化)

C# 通过时间(而不是用户交互)自动将应用程序从最小化模式带入前台(顶部最大化),c#,uwp,C#,Uwp,必需:通过时间(不是通过用户交互或确认)自动将应用程序从最小化模式带入前台(顶部最大化),无论是否有任何应用程序在前台运行 实际行为:应用程序不会出现在顶部的前景中,只是在任务栏中闪烁(橙色) 我们的要求:让我们了解它的用途,我们有一个播放器,它有一个名为屏幕保护程序的功能,比如windows屏幕保护程序。当用户以任何方式与设备交互时,我们的应用程序启动并播放,我们的应用程序最小化,用户继续在设备中工作,完成并离开,然后设备空闲一段时间(没有用户交互),然后我们的应用程序需要进入前台并播放,等等

必需:通过时间(不是通过用户交互或确认)自动将应用程序从最小化模式带入前台(顶部最大化),无论是否有任何应用程序在前台运行

实际行为:应用程序不会出现在顶部的前景中,只是在任务栏中闪烁(橙色)

我们的要求:让我们了解它的用途,我们有一个播放器,它有一个名为屏幕保护程序的功能,比如windows屏幕保护程序。当用户以任何方式与设备交互时,我们的应用程序启动并播放,我们的应用程序最小化,用户继续在设备中工作,完成并离开,然后设备空闲一段时间(没有用户交互),然后我们的应用程序需要进入前台并播放,等等

我已经尝试了很多方法让应用程序进入前台,但没有一种有效,尽管它尝试让应用程序启动,但没有进入前台,只是在任务栏上闪烁应用程序图标

如果我们按时将应用程序启动到compact view中,那么应用程序会启动,但仍然会位于所有运行到前台的应用程序之上

当我们通过调试(visual studio)启动应用程序时,无论我们使用的是什么应用程序,应用程序都会通过时间或代码完美地进入前台

但当我们从启动时启动应用程序时(安装后-无调试),用户与设备交互(如按下或鼠标移动),应用程序将按照逻辑进入最小化模式,并等待一段时间,而不打开提供的任何应用程序(在桌面上),应用程序进入前台这很好,但如果用户在我们的应用程序处于最小化模式时打开任何应用程序,则它不会进入前台,只需在任务栏中闪烁应用程序图标即可

我们还尝试通过桌面扩展桥应用程序将应用程序启动到前台,但仍然发现了相同的行为。

[DllImport(“user32.dll”)]
公共静态外部布尔显示窗口(IntPtr hWnd、int nCmdShow);
[DllImport(“user32.dll”)]
[返回:Marshallas(UnmanagedType.Bool)]
公共静态外部bool IsWindowVisible(IntPtr hWnd);
[DllImport(“user32.dll”)]
[返回:Marshallas(UnmanagedType.Bool)]
公共静态外部边界(IntPtr hWnd);
公共委托bool EnumedWindow(IntPtr handleWindow、ArrayList句柄);
[DllImport(“user32.dll”,CharSet=CharSet.Auto,SetLastError=true)]
[返回:Marshallas(UnmanagedType.Bool)]
公共静态外部布尔EnumWindows(EnumedWindow lpEnumFunc、ArrayList LPRAM);
公共静态数组列表GetAllWindows()
{
ArrayList windowHandles=新建ArrayList();
EnumedWindow callBackPtr=GetWindowHandle;
枚举窗口(回调ptr、窗口句柄);
返回窗口句柄;
}
私有静态bool GetWindowHandle(IntPtr windowHandle、ArrayList windowHandles)
{            
如果(IsWindowVisible(windowHandle))
{
if(IsIconic(windowHandle))
{
ShowWindow(windowHandle,3);//SW\u最大化
}
}
返回true;
}

“我尝试了很多方法让应用程序进入前台,但都没有成功”-也许你应该展示你所尝试的,这样人们就不会提供相同的建议。我建议你阅读Raymond Chen的博客。像最小化然后自动返回到最上面的全屏这样的事情有时会被Windows阻止,因为这是用户调用的操作,而不是程序调用的操作(想象一下,如果有程序同时执行相同的操作)。谢谢@Neil,你能提供与之相关的雷蒙德·陈的博客吗?因为我查过了,找不到任何相关的博客。你好@manigupta,应用程序的唤醒应由用户处理。UWP应用程序当前没有此权限,即应用程序无法自行唤醒并返回前台。