Как запустить программу поверх с помощью Batch-файла?

Вопрос или проблема

У меня есть простой .bat файл, который открывает страницу в Firefox, и я создал задачу в планировщике заданий, чтобы выполнять это каждый день в определенное время.

@Echo off
"C:\Program Files\Mozilla Firefox\firefox.exe" https://google.com
EXIT

Проблема в том, что когда открыты другие программы или папки, Firefox открывается под ними. Есть ли способ запустить Firefox поверх?

Используйте ваш bat скрипт, чтобы вызвать Firefox, если он не запущен:

@echo off

title <nul && title ...\"%~nx0"
%__AppDir__%mode.com con: cols=50 lines=10

%__AppDir__%tasklist.exe | find /i "firefox.exe" >nul || (
start "" /b "C:\Program Files\Mozilla Firefox\firefox.exe" https://google.com)

И добавьте/используйте также код VBS, чтобы вывести Firefox на передний план:

WScript.CreateObject("WScript.Shell").AppActivate("firefox")

Используйте адаптированный код в гибридном режиме ваш + :

<!-- :

@echo off

title <nul && title ...\"%~nx0" 
%__AppDir__%mode.com con: cols=50 lines=10

%__AppDir__%tasklist.exe | find /i "firefox.exe" >nul || (
start "" /b "C:\Program Files\Mozilla Firefox\firefox.exe" https://google.com)

%__AppDir__%timeout.exe /t 2 /nobreak | echo=// ждем 2 секунды, чтобы убедиться, что Firefox загрузился
%__AppDir__%wScript.exe "%~dpnx0?.wsf" & %__AppDir__%move.com nul 2>&0 & goto :eOf || exit /b 

-->

<job><script language = "vbscript">WScript.CreateObject("WScript.Shell").AppActivate("firefox")</script></job>

Простое объяснение гибридной структуры будет таковым:

<!-- :
       bat код и также vbs комментарий
-->

<job>
       vbs скрипт код  
</job>

Примечание: Сохраните этот скрипт как some_file_name.cmd или some_file_name.bat


// Некоторые ссылки, чтобы познакомиться с гибридными кодами, включающими bat и vbs:
Синтаксис
Примеры

// Вопросы:
Как вызвать или встроить VBS в Batch скрипт
Возможно ли встроить и выполнить VBScript внутри bat файла без использования временного файла?

Вы можете добиться успеха с:

@Echo off
"C:\Program Files\Mozilla Firefox\firefox.exe" https://google.com
ping 127.0.0.1 -n 1 > nul
EXIT

Я не знаю, почему это работает для меня, у меня просто была такая же проблема, как и у вас, когда окно приложения остаётся на заднем плане на системе Windows 10. Я уже отчаялся и хотел вывести подсказку в бат-файле о том, что окно приложения может быть скрыто.

Чтобы сделать подсказку видимой в течение короткого времени, прежде чем окно бат-файла закроется (и в отсутствие команды задержки для бат-файлов), я хотел использовать общую ping 127.0.0.1 -n 6 > nul (пять секунд задержки с шести пингов на локальный хост с интервалом в одну секунду и вывод перенаправлен в nul, так как это не имеет значения, здесь) после запуска приложения и вывода подсказки.

Так как теперь приложение было открыто на переднем плане, я убрал подсказку и уменьшил задержку до нуля секунд (один пинг).

Предположительно, другие команды, кроме ping, также подходят для обеспечения открытия окна на переднем плане, но внутренние команды exit и echo не подходят.

Ответ или решение

Как запустить программу на переднем плане с помощью Batch-файла

Если у вас есть задача по запуску Firefox через Batch-файл, и эта программа открывается позади других окон, существует несколько методов, позволяющих исправить данную ситуацию. В этом руководстве мы рассмотрим, как обеспечить открытие браузера на переднем плане с помощью Batch-файла и дополнительного кода на VBScript.

Пример Batch-файла для запуска Firefox

Для начала создайте или отредактируйте ваш Batch-файл. Рассмотрим приведенный ниже код:

@Echo off
title <nul && title ...\"%~nx0"
%__AppDir__%mode.com con: cols=50 lines=10

%__AppDir__%tasklist.exe | find /i "firefox.exe" >nul || (
start "" /b "C:\Program Files\Mozilla Firefox\firefox.exe" https://google.com
)

%__AppDir__%timeout.exe /t 2 /nobreak > nul
%__AppDir__%wScript.exe "%~dpnx0?.wsf" & %__AppDir__%move.com nul 2>&0 & goto :eOf || exit /b

Объяснение кода

  1. Проверка на наличие Firefox:
    Код начинает с проверки, запущен ли уже Firefox. Если нет, то он выполняет команду для его запуска. Это делается с помощью tasklist и find.

  2. Запуск Firefox:
    Если Firefox не работает, он открывается с заданным URL-адресом.

  3. Задержка:
    Добавлена небольшая задержка (2 секунды), чтобы дать время браузеру загрузиться. Это поможет избежать ситуации, когда VBScript запустится до того, как Firefox будет готов к активации.

  4. Активация окна Firefox:
    После задержки вызывается VBScript для активации окна браузера, гарантируя, что он будет на переднем плане.

Встраивание кода VBScript в Batch-файл

Для обеспечения активации окна Firefox, потребуется добавить следующий VBScript код:

WScript.CreateObject("WScript.Shell").AppActivate("firefox")

Чтобы встроить этот код в ваш Batch-файл, необходимо использовать синтаксис hybrid. Вот как это будет выглядеть:

@echo off

title <nul && title ...\"%~nx0" 
%__AppDir__%mode.com con: cols=50 lines=10

%__AppDir__%tasklist.exe | find /i "firefox.exe" >nul || (
start "" /b "C:\Program Files\Mozilla Firefox\firefox.exe" https://google.com
)

%__AppDir__%timeout.exe /t 2 /nobreak > nul

<job>
<script language="vbscript">WScript.CreateObject("WScript.Shell").AppActivate("firefox")</script>
</job>

Сохранение файла

Не забудьте сохранить файл с расширением .bat или .cmd, чтобы его можно было запускать.

Альтернативный метод с использованием ping

Некоторые пользователи сообщают, что использование команды ping для создания задержки также помогает Firefox открываться на переднем плане. Вот пример:

@Echo off
"C:\Program Files\Mozilla Firefox\firefox.exe" https://google.com
ping 127.0.0.1 -n 1 > nul
EXIT

В данном случае команда ping создает временную задержку, которая может помочь окну Firefox появиться поверх других.

Заключение

Использование комбинации Batch и VBScript является эффективным способом решения проблемы открытия Firefox на переднем плане. Вы можете выбрать наиболее подходящий метод в зависимости от ваших нужд и предпочтений. Если что-то не работает, попробуйте использовать различные настройки и задержки, чтобы найти оптимальное решение для вашего окружения.

Оцените материал
Добавить комментарий

Капча загружается...