Windows 10의 새로운 계산기 응용 프로그램이 하나의 인스턴스만 열도록 하는 방법이 있습니까?

Windows 10의 새로운 계산기 응용 프로그램이 하나의 인스턴스만 열도록 하는 방법이 있습니까?

방금 Windows 8.1에서 Windows 10 Pro로 업그레이드했는데, 키보드의 계산기 키를 사용할 때마다 새 인스턴스가 열린다는 점을 제외하면 새 계산기 응용 프로그램이 정말 마음에 듭니다.

다른 응용 프로그램을 사용하지 않고도 Windows 8.1의 계산기처럼 단일 인스턴스 응용 프로그램이 되도록 강제할 수 있는 방법이 있습니까?

답변1

사용AHK. 계산기 키를 다음 스크립트에 매핑합니다(이 스크립트는 Win+ 에 매핑됨 Z).

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

답변2

앱을 시작하고 작업 표시줄에 고정하기만 하면 됩니다. 그런 다음 Win+1, Win+2 등의 단축키를 클릭하거나 사용하여 시작합니다. 단축키를 클릭하고 사용하면 앱 인스턴스가 하나만 실행됩니다. 인스턴스가 이미 실행 중이고 바로가기를 반복하면 앱의 포커스만 불러올 수 있습니다.

다른 인스턴스를 시작하기로 결정한 경우 작업 표시줄에서 아이콘을 마우스 오른쪽 버튼으로 클릭하고 앱 이름을 클릭하세요. 제 생각에는 이런 단축키를 사용하면 업무 효율이 높아지고 정신적 피로도가 현저히 낮아지는 것 같아요.

계산기 앱 스크린샷

답변3

포함되지 않는 방법AHK:

%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>

이는 스택 오버플로 질문에 대한 답변을 기반으로 했습니다.Windows에서 단일 계산기 인스턴스(calc.exe)를 실행하는 방법.

하지만 그들이 작성한 스크립트는 Windows 10에서 작동하지 않았기 때문에 다른 소스의 일부 비트를 결합하여 내 스크립트를 만들었습니다. 저는 VBScript에 대해 아무것도 모르기 때문에 기적입니다. 그러나 AHK를 실행하고 싶지 않은 경우에는 작동하는 옵션입니다.

관련 정보