我编写了一个简单的 Windows 程序并将其放在开始菜单上的“启动”文件夹中。
但当 Windows 启动时,它总是启动它两次。我的程序有两个实例,但我总是必须手动退出其中一个。
它只存在于“所有用户”启动配置文件中,而不存在于任何其他用户配置文件中。我还没有感动注册表根本就不存在。如果我从“启动”中删除该程序,那么它根本就不会启动。
这实际上发生在两个都对我来说,这个特定的程序是 7 和 xp。
答案1
检查该程序是否未安装在“所有用户\Startup”以及“您的用户名\Startup”中
当我摆弄开始菜单时,这种情况发生过一次。
答案2
转到运行对话框并输入msconfig
。
应该会出现类似下面的框:
查看启动选项卡并取消选中两次启动的应用程序的条目。
答案3
您可以尝试制作此注册表文件(首先从所有用户启动中删除快捷方式)
----------------------------------------------------开始复制
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"{Software Name}"="\"C:\\Program Files\\{Install Folder}\\{Application Name.exe}\""
结束复制---------------------------------------------
将{文件夹和文件名称}更改为您需要开始的内容,删除弯曲的括号。
将其保存为 .txt 文件,然后将扩展名更改为 .reg
运行该文件并查看它是否能解决问题
如果没有,您可以随时通过使用此行创建一个 .reg 文件来删除该条目(请记住将 {软件名称} 更改为您更改第一个软件名称的内容)。
------------------------开始复制
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"{Software Name}"=""
复制结束------------------------------
答案4
我遇到了楼主提到的确切情况。结果发现指向“启动”文件夹的注册表项被搞乱了(由于拖放和复制启动文件夹到不同位置/从不同位置)。
解决方案: 从 Sysinternals 下载“pstool”,运行以下命令获取您的 sid:
pstools sid64
在 regedit 上,您可以看到 HKEY_USERS\ 路径下有一个包含您的 sid 的路径。例如HKEY_USERS\{{your sid here}}\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
键。
我发现该路径下存在以下值:
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Startup\
我将其更改为
%USERPROFILE%\Microsoft\Windows\Start Menu\Programs\Startup\
问题就解决了!