0

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

#include <windows.h>

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

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

我在任务计划程序上设置了这个程序,让它在用户登录 Windows 8 后立即运行。设置后,重新启动系统并登录,任务栏仍然可见。任务调度程序说程序运行成功。

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

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

4

1 回答 1

4

我可以看到两种可能性:

  1. 从任务调度程序执行的进程在不同的桌面上运行。这是计划任务的常见问题。
  2. 您的进程在 shell 显示任务栏窗口之前运行。

您可能会受到两者的影响。

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

对于第 2 项,您需要您的程序等到窗口显示,然后再隐藏它。

于 2013-11-06T08:24:04.420 回答