Я только что обновился с 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.