我将以下代码分配给VAIO按钮:
C:\Windows\System32\calc.exe
但每次我按下 VAIO 按钮时,都会在新窗口中显示一个新的计算器实例。如果已经有一个计算器窗口,那么将计算器置于最前面的命令行是什么?
顺便说一句:我尝试了以下方法,但没有效果。它只是充当 VAIO 按钮:
start /B calc # Doesn't work
答案1
检查是否calc.exe
已启动的批处理文件不必像乌普雷戈声明。
但首先...你真的想转变到当前的 calc.exe
?或者你只想calc.exe
运行一个。如果你不需要切换到当前实例,你可以创建一个批处理文件来终止第一个实例并运行一个新的实例calc.exe
:
calc.bat
:
@echo off
taskkill /f /im "calc.exe"
start calc.exe
唯一的缺点是您会丢失上次计算的当前结果。
如果您不想calc.exe
关闭当前页面,也可以使用其他解决方案将其置于最前面(但会稍微复杂一些)。如果您确实想切换到当前页面calc.exe
,请告诉我,我会尝试进行进一步搜索。
答案2
您可以使用 AutoHotkey 和以下脚本轻松完成此操作:
<yourkey>::
IfWinExist Calculator
{
WinActivate
}
else
{
Run calc.exe
WinWait Calculator
WinActivate
}
这里唯一需要做的就是修改<yourkey>
你的 VAIO 按钮的代码。要找到它:
- 右键单击托盘中的 autohotkey 图标
- 选择打开
- 按下(或在菜单中CtrlK选择)
Key History and Script Info
View
- 按下 VIAO 按钮,然后F5。
在底部的第二列,您将找到按钮的 SC 代码。替换<yourkey>
为SCxxx
(SC123
如果您的 SC 代码为 123,则为)。
答案3
您可以构建更复杂的 Microsoft 批处理脚本并将其分配给 VAIO 按钮。此脚本可以:
- 检查临时文件夹中的标志文件。
- 如果存在,则当窗口正在运行时将其显示在屏幕上,否则打开该程序。
- 如果不存在,则创建它,打开程序并等待终止,然后删除标志文件。
对我来说,这里未解决的原语是创建临时文件,根据进程名称查找程序和使窗口在屏幕上可见。这些应该很容易找到堆栈溢出或者整个互联网。
答案4
您可以为 calc.exe 创建快捷方式并将其放在硬盘驱动器上的任何位置,然后从热键调用此快捷方式,您甚至不需要批处理。Windows 将为您处理。唉,如果有打开的 calc.exe,它将显示出来。因此,如果您将 .lnk 文件放在 C:\Windows\System32\ 中,您的 C:\Windows\System32\calc.exe 调用将是 C:\Windows\System32\calc.exe.lnk