У меня есть следующий код, назначенный кнопке VAIO:

C:\Windows\System32\calc.exe

Но каждый раз, когда я нажимаю кнопку VAIO, я получаю новый экземпляр калькулятора в новом окне. Какой будет командная строка, которая выводит калькулятор на передний план, если у него уже есть окно?

Кстати: я попробовал следующее, но это не сработало. Он просто ведет себя как кнопка VAIO:

start /B calc       # doesn't work

С уважением

3 ответа3

4

Пакетный файл, чтобы проверить, запущен ли calc.exe , не должен быть настолько сложным, как указано выше.

Но сначала... Вы действительно хотите перейти на текущий файл calc.exe? Или вы просто хотите запустить один calc.exe . Если вам не нужно переключаться на текущий, вы можете просто создать пакетный файл, который убивает первый и запускает новый экземпляр calc.exe:

calc.bat:

@echo off
taskkill /f /im "calc.exe"
start calc.exe

Единственным недостатком является потеря текущего результата в ваших предыдущих расчетах.

Если вы не хотите, чтобы текущий calc.exe был уничтожен, существуют также решения для его вывода на передний план (но они будут несколько сложнее). Дайте мне знать, если вы действительно хотите переключиться на текущий calc.exe и я постараюсь выполнить дальнейший поиск.

1

Вы можете сделать это довольно легко с помощью AutoHotkey и этого скрипта:

<yourkey>::
IfWinExist Calculator
    {
        WinActivate
    }
    else
    {
        Run calc.exe
        WinWait Calculator
        WinActivate
    }

Здесь нужно изменить <yourkey> с помощью кода вашей кнопки VAIO. Чтобы найти это:

  • щелкните правой кнопкой мыши на значке автоотключения в трее
  • выбрать открытый
  • нажмите Ctrl K (или выберите Key History and Script Info в меню View )
  • нажмите кнопку VIAO, затем F5.

Внизу, во втором столбце, вы найдете код SC кнопки. Замените <yourkey> на SCxxx (поэтому SC123 если ваш код SC был 123).

1

Вы можете создать более сложный пакетный скрипт Microsoft и назначить его кнопке VAIO. Этот скрипт может:

  • Проверьте файл флага в папке временных файлов.
    • Если оно существует, откройте окно, видимое на экране, если оно запущено, иначе откройте программу.
    • Если он не существует, создайте его, откройте программу и дождитесь завершения, затем удалите файл флага.

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

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