我的机器(Windows 7 64位)大约需要3-4分钟才能完全启动。是否有任何方法可以通过使用Windows内置功能或任何第三方应用程序来指示启动完成,某种声音/弹出窗口?
我要求Windows和所有启动程序都完成启动后
我通常有时坐在机器前等待,这样的时间可以更好地用作速成。
硬盘指示灯停止闪烁时,外观如下:
FooUpdater.EXE
会睡7分钟。
我的机器(Windows 7 64位)大约需要3-4分钟才能完全启动。是否有任何方法可以通过使用Windows内置功能或任何第三方应用程序来指示启动完成,某种声音/弹出窗口?
我要求Windows和所有启动程序都完成启动后
我通常有时坐在机器前等待,这样的时间可以更好地用作速成。
硬盘指示灯停止闪烁时,外观如下:
FooUpdater.EXE
会睡7分钟。
Answers:
这里有几个可能有用的答案,但是我认为还没有提出两个重要的观点:
不可以,无法以编程方式确定Windows和所有启动程序已完成引导。从本质上讲,这是一个暂停问题,没有程序可以回答“对于这个任意程序,我们应该在什么时候说它已经被加载?”的问题。
您要解决的实际问题是什么? 这里的所有答案都试图为您的问题找到解决方案,但是问题本身感觉好像它缺少一些重要信息。我们要解决您的问题,而不仅仅是回答问题。
再次阅读您的问题,然后按照您所说的去做,我的回复将是以下之一:
要么:
这可能不会直接回答您当前的问题,但希望会有所帮助。
systemd
有这个,原则上,在所有其他人都已经通过其依赖机制启动之后,一个人可以启动服务。但是,您必须手动指定所有这些选项(我的systemd
知识不是那么好)。
当Windows真正完成时,为什么不使用Windows Task Scheduler和Event ID 100播放自定义声音呢?
在触发器下,选择“发生事件”,然后
在“操作”下,选择“启动程序”
"%ProgramFiles(x86)%\Windows Media Player\wmplayer.exe"
添加参数: "%windir%\Media\Windows Logon Sound.wav"
Event ID: 100
Decription: Windows has started up
如果Windows在进入桌面用户界面后80%处于空闲状态(不包括低优先级的CPU和磁盘活动)10秒钟,则Windows将视为启动完成。
要查看确切的启动时间,请使用xbootmgr跟踪Windows启动缓慢的原因。
我已经安装了很长时间使用的免费程序,Soluto:https://www.soluto.com/
我只是一个用户,没有联系。
这个对我有用。
它进行倒计时,并允许您选择要在引导时加载的内容。
它还允许您延迟启动。
在启动时运行此Python脚本。当CPU使用率连续5秒低于20%时,它将播放启动声音:
import subprocess
import time
# set these to whatever works for you
# sound will play when cpu load has been < IDLE_PERCENT for IDLE_TIME consecutive seconds
IDLE_TIME = 5
IDLE_PERCENT = 20
# you can execute any program you want by changing the alert function below
def get_load():
output = subprocess.check_output('wmic cpu get loadpercentage', shell=True)
load = output.split()[1]
return int(load)
def alert():
subprocess.call([
r"c:\Program Files (x86)\Windows Media Player\wmplayer.exe",
r"c:\Windows\Media\Windows Logon Sound.wav"])
idleSeconds = 0
while idleSeconds < IDLE_TIME:
load = get_load()
if load < IDLE_PERCENT:
idleSeconds += 1
else:
idleSeconds = 0
time.sleep(1)
alert()
这可能不是很有效,但是很便宜。
我通常会查看硬盘活动指示灯(您可以在外壳上通过数据库图标来识别它),直到指示灯稳定并不频繁闪烁,然后我知道我现在可以使用PC了而不会出现任何滞后。硬盘通常是PC的瓶颈,如果不大量使用硬盘,则您仍有工作空间。
希望能有所帮助。
我从来没有亲自使用过它,但是Windows Task Scheduler将允许您创建一个被触发以运行“启动时”或“登录时”的任务。您可能可以安排任务以运行Powershell脚本来访问.NET Framework 的Console.Beep()方法。您甚至可以将它变成一个不错的曲调。
[console]::beep(500,300)
更改第一个数字的值以更改音高(听不到190或高于8500的任何声音),更改第二个数字的值以更改音长
编辑:
事实证明,根据MSDN .NET文档,Console.Beep()方法可能不适用于64位系统。在PowerShell脚本中测试了蜂鸣声,并且工作正常。
您可能还希望检查启动过程。您可以通过运行msconfig并单击服务来做到这一点。您也可以使用Sysinternals工具“自动运行”。
Windows文档按加载顺序排在最后的是注册表currentuser / runOnce(在启动文件夹之后)...但是,无论加载顺序如何,某些程序都可能花费很长的启动时间。
因此,也许查看批处理文件中的CPU活动可能是一个很好的解决方案:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set cpuLimit=15
set /a lowCount=0
for /l %%i in (1,1,30) do (
for /F %%c in ('wmic cpu get loadpercentage ^| findstr "[0-9]"') do (
echo %%i cpu-Load: %%c ...lowCnt: !lowCount!
if %%c gtr %cpuLimit% ( set lowCount=0
) else ( set /a lowCount+=1
if !lowCount! gtr 10 (
ECHO BEEEEEEP ... mplay32 beep.wav... or something
exit
)
)
)
ping -n1 127.0.0.1 >NUL
)
...和BEEEPing在发现最近10次cpu-load-check中有cpu-load低于15%之后。可以通过启动文件夹中的链接启动此批处理文件,或者最好在注册表HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run中启动
你写了:
«我的机器(Windows 7 64位)大约需要3-4分钟才能完全启动...»
包括对用户帐户的访问在内,“正常”启动大约需要30秒。出了点问题,必须解决。为了修复它,您必须获取数据。我建议您使用两个实用程序来解决此问题:
1)自动运行
使用此程序,您可以检查在引导过程中加载的每个进程,程序和驱动程序。Tka护理:这是一个非常强大的工具,除非您知道自己在做什么,否则不要删除项目。但是您可以取消选中(禁用)某些启动登录程序...
2)系统资源管理器
使用此工具,您可以查看所有启动的进程及其历史,直到启动系统资源管理器为止。也可以出于安全目的扫描所有这些流程(与流程数据库相比。)
首先检查一下,他们会给我们一些反馈。
您还可以在Windows管理工具中检查启动时的服务services.msc
以及设备的状态devmgmt.msc
(缺陷设备的黄色三角形,PIO模式下的硬盘而不是DMA的硬盘等等)...
希望能有所帮助。让我们知道
我一直在寻找这样的东西,我找到了答案
我可能稍后会发布实际的代码,但是在这里
http://msdn.microsoft.com/zh-CN/library/aa394226%28v=vs.85%29.aspx
只需将最后一部分的内容另存为vbs文件并运行它,就可以轮询每个系统事件并提取其显示的消息,非常简单。
查找启动顺序完成的方法是仅运行此脚本,直到事件ID为“ 100”为止,该事件ID对应于系统事件中的启动完成过程
请参阅:http : //www.howtogeek.com/72420/how-to-use-event-viewer-to-find-your-pcs-boot-time/
因此,当您启动该脚本时,它将轮询所有事件并等待事件ID为100并提醒您。可以在任何脚本工具(例如autoit)中使用相同的命令
只想让所有人都知道。因为当我搜索这个。我发现的只是Windows Task Scheduler的想法或最好的解决方案。实际上,由于某些奇怪的原因,solutto不久前就停止在我的x64 pc上工作。所以我想自己做一个脚本,将我引向最终解决方案。