5

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

Скриншот

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

3 ответа3

6

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

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

Существует некоторая основная информация об этом на http://ss64.com/vb/run.html

2

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

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

РЕДАКТИРОВАТЬ: start /min очень быстро крадет фокус, но он работает на моем компьютере, используя командный файл .cmd который вызывает новое окно командной строки (используя cmd.exe).

Мой командный файл выглядит так:

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .