通过在此目录中创建脚本的快捷方式,我已经成功地在启动时使用了多个脚本:
C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
但是,注销后重新登录时不会加载其中一个脚本。该脚本是AHK脚本,用作在显示和声音源之间切换的切换:
#a::
toggle += 1
if (toggle = 0)
{
Run nircmd setdefaultsounddevice "BEDROOM"
soundToggleBox("BEDROOM")
}
else if (toggle = 1)
{
Run nircmd setdefaultsounddevice "LIVING_ROOM"
soundToggleBox("LIVING_ROOM")
toggle := -1
Return
; Display sound toggle GUI
soundToggleBox(Device)
{
IfWinExist, soundToggleWin
{
Gui, destroy
}
Gui, +ToolWindow -Caption +0x400000 +alwaysontop
Gui, Add, text, x35 y8, Default sound: %Device%
SysGet, screenx, 0
SysGet, screeny, 1
xpos:=screenx-275
ypos:=screeny-100
Gui, Show, NoActivate x%xpos% y%ypos% h30 w200, soundToggleWin
SetTimer,soundToggleClose, 2000
}
soundToggleClose:
SetTimer,soundToggleClose, off
Gui, destroy
Return
我执行时脚本运行正常。
因此,我查找了为什么可能无法加载的原因,并注意到另一个用户使用的启动目录与上面显示的目录不同:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
我注意到,将此AHK文件的快捷方式放在此目录中可确保它重新登录Windows后即可加载,因此我的问题是:
这两个启动项目目录之间有什么区别:
C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
AppData包含特定于每个用户配置文件的应用程序数据,而ProgramData包含整个本地计算机的应用程序数据。因此,我能想到的唯一原因是您以其他用户身份重新登录(当程序将自身复制到AppData Startup时),则该条目不是按机器运行的,因此它不会执行。
添加启动程序的最佳方法是向HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
(本地计算机)或HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
(每用户)或HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
(Windows 64上的Windows 32条目)注册表项添加条目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句