Win8如何将进程归类为“后台进程”?我的应用程序在Win7中工作,但在Win8中没有显示UI

时间:2013-02-14 23:37:56

标签: c++ windows-8

我相当正常的基于MFC的Windows应用程序在Windows 7上运行正常。但是当我在Windows 8中运行它时,没有UI出现。起初我认为它不能正常启动,但最终意识到如果我调出任务管理器,它会显示我的应用程序 正在运行,但它列在“后台进程”部分下。 / p>

Windows 8在一个进程上运行什么启发式来判断它是一个“后台进程”?或者我可以做些什么 - 可能在应用程序清单中 - 将我的应用程序明确标记为前台进程?

我试过在Win7和XP兼容模式下运行,但无济于事。我试过几台Win8机器,都给出了相同的结果。

对于它的价值,这个应用程序是用Visual Studio 2003编译的,我没有选择使用更新的编译器。

我搜索了“win8后台进程”之类的内容,但我得到的只是想要创建后台进程的人。一些答案表明必须使用应用程序清单注册后台进程,但我仔细检查了我的清单,它肯定没有关于后台进程的内容。

这是我的清单,以防你可以看到其中的内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
    version="1.0.0.0" 
    processorArchitecture="X86" 
    name="MyProductName"
    type="win32" 
/> 
    <description>My Product Description</description> 
    <dependency> 
        <dependentAssembly> 
            <assemblyIdentity 
                type="win32" 
                name="Microsoft.Windows.Common-Controls" 
                version="6.0.0.0" 
                processorArchitecture="X86" 
                publicKeyToken="6595b64144ccf1df" 
                language="*" 
            /> 
        </dependentAssembly> 
    </dependency> 
    <asmv3:trustInfo xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
        <asmv3:security>
            <asmv3:requestedPrivileges>
                <asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false" />
            </asmv3:requestedPrivileges>
        </asmv3:security>
    </asmv3:trustInfo>
</assembly>

如果我在这里找不到答案,我将与微软公开支持事件以获得他们的帮助。如果达到这一点,我肯定会用我发现的内容更新这个问题。

2 个答案:

答案 0 :(得分:4)

我正在开发Windows 8应用程序,但对MFC开发知之甚少。所以根据我的知识,MFC开发更像是Silverlight开发的模拟器,但Windows 8开发与MFC开发平台更加不同。

顺便说一下,“ Win 8中后台进程的分类”:

处于暂停模式的应用程序进程,表示应用程序正在运行但由于桌面模式而未显示任何UI。 为了澄清我在这一点上的自我,我再次通过XAML&amp; amp; C#,并使该线程处于挂起模式,仅在那个进程在任务管理器中显示为后台进程。

此外“仅适用于Windows 8”

任何应用程序的流程显示为后台流程,当应用程序提供的资源将减少或将d分配这些资源但仍然加载并运行应用程序...

Windows 8的此功能称为“自动资源分配”...

抱歉,如果您在此处找不到答案,但我认为这可以帮助您了解“哪个流程在Win 8中归类为后台流程”

答案 1 :(得分:1)

这是我的纯粹推测,因为我找不到任何关于此的文档,但我怀疑MFC中的某些内容失败,并且缺少有效的UI是为什么任务管理器将您的应用程序归类为背景进程,因为用户无法与之交互。