为什么在通过任务计划程序运行时此代码无效?

时间:2013-11-06 08:16:59

标签: c++ windows windows-8 operating-system

我使用以下代码创建了一个简单的程序:

#include <windows.h>

int main(int argc, char *argv[])
{
    ShowWindow(FindWindow(L"Shell_TrayWnd",L""), SW_HIDE);
    return 0;
}

基本上,它只会找到任务栏窗口并隐藏它。

我在任务计划程序上设置此程序,以便在用户登录Windows 8后立即运行。设置完成后,重新启动系统并登录,任务栏仍然可见。任务计划程序说程序运行成功。

但是,当我尝试通过双击运行该程序时,任务栏将变为隐藏状态。

任何想法可能是为什么这个代码在通过任务调度程序运行时不会生效的原因?

1 个答案:

答案 0 :(得分:4)

我可以看到两种可能性:

  1. 从任务计划程序执行的过程在另一个桌面上运行。这是计划任务的常见问题。
  2. 您的进程在shell显示任务栏窗口之前运行。
  3. 你受到两者的影响是合理的。

    对于第1项,您应切换到使用HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run来触发您的过程。

    对于第2项,你需要你的程序等到窗口显示之前,才能隐藏它。