Есть ли способ заставить новое приложение калькулятора в Windows 10 открыть только один свой экземпляр?

Есть ли способ заставить новое приложение калькулятора в Windows 10 открыть только один свой экземпляр?

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

Есть ли способ сделать его приложением с одним экземпляром, как калькулятор в Windows 8.1, не заставляя меня использовать другое приложение?

решение1

ИспользоватьАХК. Сопоставьте клавишу калькулятора со следующим скриптом (этот скрипт сопоставлен с Win+ Z):

#z::
IfWinExist Calculator
WinActivate
else
Run calculator://
return

решение2

Просто запустите приложение и закрепите его на панели задач. Затем вы запускаете его, нажав или используя сочетания клавиш Win+1, Win+2 и т. д. Как нажатие, так и использование сочетания клавиш запускает только один экземпляр приложения. Если экземпляр уже запущен и вы повторяете сочетание клавиш, вы только вызываете фокус приложения.

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

снимок экрана приложения калькулятора

решение3

Метод, который не требуетАХК:

Я применил другой метод, который включал размещение скрипта в месте, видимом для %PATH% и редактирование реестра для вызова скрипта.

Это редактирование реестра выглядит следующим образом:

Установите
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18\ShellExecute
для ключа значение «scriptname.wsf», которое будет соответствовать выбранному вами названию файла скрипта.

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

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshShell = WScript.CreateObject ("WScript.Shell")
         Set colProcessList = GetObject("Winmgmts:").ExecQuery ("Select * from Win32_Process")
         
         For Each objProcess in colProcessList
         If objProcess.name = "Calculator.exe" then
         vFound = True
         End if
         Next
         
         If vFound then
         WshShell.AppActivate "Calculator"
         Else
         WshShell.run "calc.exe", 5, false
         End If
      </script>
   </job>
</package>

Это основано на ответе на вопрос Stack OverflowКак запустить один экземпляр калькулятора (calc.exe) в Windows.

Но написанный ими скрипт не работал в Windows 10, поэтому я объединил некоторые части из других источников, чтобы сделать свой, который работает. Чудо, поскольку я ничего не знаю о VBScript, но это работающий вариант, если вы не хотите запускать AHK.

Связанный контент