我注意到了一些非常奇怪的事情。如果我从 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.\n\n");
Sleep(5000);
printf("Setting Taskbar as foreground window now... \n");
SetForegroundWindow(FindWindow(L"Shell_TrayWnd", NULL));
getchar();
return 0;
}
从VS2013运行时:即使Metro App打开(占据全屏),任务栏设置为前台窗口后,用户也被带回桌面。
双击 .exe 时:如果 Metro App 是前台窗口,则不会发生任何事情。
作为旁注,我尝试右键单击并“以管理员身份运行”,但是仍然没有效果。这更令人困惑。有人知道这里发生了什么吗?
另外,我正在运行 Windows 8.1 Preview。