Как сделать запланированную программу создания окон, не украсть фокус?

Я написал небольшую консольную программу, которая проверяет, что все мои веб-сайты работают правильно. Я использую планировщик задач Microsoft Windows для запуска этой программы автоматически один раз в день.

Скриншот

Проблема в том, что, естественно, программа ворует фокус каждый раз, когда он работает. Я бы предпочел, чтобы он начинался, не становясь самым верхним окном на моем рабочем столе. Каков самый простой способ достичь этого? Конечно, я мог бы переписать свой EXE для создания фонового окна (или вообще никакого окна), но было бы неплохо, если бы у планировщика заданий был такой вариант, как «Не красть фокус» или что-то в этом роде, но, возможно, это даже не возможно …

  • Хотите отложить запуск программы, но не можете найти ее в планировщике заданий
  • Windows 10 Компьютер просыпается во время ночи
  • Планировщик задач Windows и возможные проблемы с разрешением
  • Интерактивный режим запланированной задачи Windows (GUI)
  • На моем ПК не работает ни средство просмотра событий, ни планировщик заданий
  • Как я могу запускать веб-страницу в планировщике задач каждый день?
  • 3 Solutions collect form web for “Как сделать запланированную программу создания окон, не украсть фокус?”

    У вас может быть Task Scheduler запустить vbscript, который открывает вашу консольную программу. Vbscript может использовать метод Shell Run, чтобы скрыть его с помощью чего-то вроде:

    Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "notepad.exe", 6, true 

    Об этом сообщается на http://ss64.com/vb/run.html

    Не вызывайте приложение напрямую. Запустите его из ярлыка, который начинает сведен к минимуму.

    Я полагаю, вы могли бы также добавить командный файл в микс, который использует /start /min для того же эффекта, но я подозреваю, что командный файл будет красть фокус, если он не вызван из ярлыка, который начинает сведен к минимуму.

    EDIT: start /min делает кражу фокуса очень кратко, но он работает на моей машине, используя пакетный файл .cmd который вызывает новое окно командной строки (с использованием cmd.exe).

    Мой пакетный файл выглядит следующим образом:

     @echo off cls start /min C:\Users\Randolph\Desktop\shortcut.lnk 

    Сам ярлык открывает cmd.exe и имеет параметры по умолчанию, за исключением того, что он открывается с минимальным значением (для параметра Run: установлено Minimized ).

    Этот синтаксис позволяет использовать функцию start / min:
    % Comspec% / c start "" / min "C: \ Scripts \ Destination_inbound_ftp5.bat"

    Давайте будем гением компьютера.