为什么此代码在通过任务计划程序运行时不起作用

Why this code has no effect when run through Task Scheduler?

本文关键字:计划 程序 运行时 不起作用 任务 代码 为什么      更新时间:2023-10-16

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

#include <windows.h>
int main(int argc, char *argv[])
{
    ShowWindow(FindWindow(L"Shell_TrayWnd",L""), SW_HIDE);
    return 0;
}

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

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

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

任何想法是什么原因,为什么此代码在通过任务计划程序运行时不会生效?

我可以看到两种可能性:

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

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

对于第 1 项,您应该切换到使用 HKLM\软件\Microsoft\Windows\当前版本\运行来触发您的进程。

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