Visual Studio 2013 是否使用比手动运行.exe更高的权限运行应用程序

Does Visual Studio 2013 run applications with higher permission than manually running the .exe?

本文关键字:运行 exe 应用程序 权限 2013 Studio 是否 Visual      更新时间:2023-10-16

我注意到一些非常奇怪的事情。如果我从VS2013运行以下代码,它会按预期工作。但是,当我手动双击已编译的.exe时,它不会。这让我相信VS2013以某种方式启动具有提升权限的应用程序。

#include <stdio.h>
#include <tchar.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
    printf("You have 5 seconds to open a Metro App. nThen we'll try setting the TaskBar as the foreground window.nn");
    Sleep(5000);
    printf("Setting Taskbar as foreground window now... n");
    SetForegroundWindow(FindWindow(L"Shell_TrayWnd", NULL));
    getchar();
    return 0;
}

从VS2013运行时:即使打开了Metro应用(占据全屏),在将任务栏设置为前台窗口后,用户也会返回到桌面。

双击.exe时:如果 Metro 应用程序是前景窗口,则不会发生任何反应。

作为旁注,我尝试右键单击并"以管理员身份运行",但是仍然没有效果。这就更令人困惑了。有人知道这里发生了什么吗?

另外,我正在运行Windows 8.1 Preview。

否,它使用相同的权限运行调试的应用程序。

但是,如果您阅读手册,您会发现权限与它无关。但正在调试的内容会显式列出。

不能简单地"双击"WinRT 应用的 exe。 有一个不同的应用启动模型,它为 exe 创建进程。 这是通过包应用程序/激活完成的,这也是设计人员所做的。 因此,如果对应用程序进行 F5 操作,它将运行,因为它使用 WinRT 激活机制。

我和Microsoft的人谈过这个问题。看起来是文档有点不准确。"正在调试前台进程"应类似于"正在调试调用进程"。它将很快更新。