1

Полный новичок здесь, поэтому, пожалуйста, прости, если ответ очевиден.

У меня есть командный файл, который делает следующее.

Запускает программу 1 Ожидание 3 секунды (я должен нажать кнопку в программе 1 после ее открытия) Затем программа 2 запускается.

Моя проблема в том, что программа 1 просто должна работать в фоновом режиме .... Окно не требуется после первых 3 секунд.

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

Три секунды запускается вторая программа.

Затем я должен вернуться к программе 1 и щелкнуть X в правом верхнем углу окна, чтобы закрыть его. Я бы хотел, чтобы ОКНО в первой программе автоматически закрывалось через 3 секунды (но сама программа не может быть уничтожена).

Предложения?

@echo off
start C:\Folder\To\MySystemManager.exe
TIMEOUT 3

start "" "C:\Program Files (x86)\CustomProgram\CustomProgram.exe"
exit

1 ответ1

1

AFAIK, что невозможно с «чистым» пакетом - вам нужно использовать либо сторонний инструмент, либо использовать powershell [или какой-либо другой способ ссылки на Win API].

Если я вас правильно понял, и окно, которое вы хотите закрыть, является своего рода панелью управления, которая переопределяет сообщение о закрытии окна, чем это должно работать (при запуске из cmd и при условии, что существует только один экземпляр процесса):

powershell (ps MySystemManager).CloseMainWindow()

Эта команда действует так, как будто вы нажали кнопку «закрыть» (X)

Я проверил это с помощью панели управления xampp (powershell (ps xampp-control).CloseMainWindow()), ваш пробег может отличаться

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