Как поместить старый экземпляр калькулятора поверх любого другого окна?

295
VickyCool

Я хотел бы открыть калькулятор. Если калькулятор уже открыт, то вы хотите открыть все остальные окна ... без использования какой-либо кодировки горячих клавиш.

Я использовал следующий скрипт:

@echo off  start /b calc.exe 

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

-1

2 ответа на вопрос

1
PloxPanda

Простой ответ: невозможно с помощью пакетного скрипта

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

Set objShell = WScript.CreateObject("WScript.Shell") objShell.AppActivate "Calculator" 

Вам нужно будет запустить VBScript через ваш пакетный скрипт

PloxPanda: Еще один вопрос ... если пользователь хочет указать путь к любому пользовательскому файлу exe, то как мы можем написать то же самое? предположим, что exe-файл называется «abc.exe» и находится в какой-то определенной папке, тогда как мы можем сделать то же самое? VickyCool 5 лет назад 0
Вы должны иметь возможность использовать путь к файлу в ванной, например, запуск C: \ Program Files \ Itunes \ itunes.exe или Vbs должен быть objShell.Run ("c: \ Program Files \ itunes \ itunes.exe"), если вы у вас должен быть путь, чтобы открыть его :) PloxPanda 5 лет назад 0
Я уже пробовал этот вариант, но если приложение находится в фоновом режиме, то objShell.Run () не выведет приложение на передний план всех окон. VickyCool 5 лет назад 0
Привет, @VickyCool. Извините за поздний ответ. Это может помочь решить вашу [проблему] (https://stackoverflow.com/questions/23266509/check-if-a-process-is-running-or-not?utm_medium=organic&utm_source = google_rich_qa & utm_campaign = google_rich_qa) Делая это, хотя вам может понадобиться заставить пакетный скрипт запустить VBScript, когда он обнаружит, что calc открыт, чтобы он сфокусировался. Это первый awnser с зеленой галочкой :) PloxPanda 5 лет назад 0
0
user902300

вы можете попробовать nircmd, а затем:

nircmd win activate "titleofwindow" 

так что в основном вам нужно знать заголовок окна (калькулятор)

также есть SetActiveWindow (см. больше здесь), как:

HWND WINAPI SetActiveWindow( _In_ HWND hWnd ); 

или другое решение с AutoHotKey - см. здесь

Спасибо всем за ваш своевременный ответ PloxPanda: без использования каких-либо сторонних приложений я могу решить с помощью vbscript .. Большое спасибо. VickyCool 5 лет назад 0
Я с нетерпением жду, чтобы открыть пользовательский исполняемый файл, который существует в конкретной структуре папок и убедиться, что если предыдущий экземпляр уже открыт, то он появится перед всеми окнами ... VickyCool 5 лет назад 0