Як сказати, коли Windows та всі програми запуску завершили завантаження?


37

Моя машина (Windows 7 64-розрядна) потребує близько 3-4 хвилин для повного завантаження. Чи є якийсь спосіб, який би вказував на завершення завантаження, якийсь звук / спливаюче вікно, або за допомогою вбудованої функції Windows, або будь-якого стороннього додатку?

Мені потрібно, коли і вікна, і всі програми запуску закінчуються завантаженням

Зазвичай я колись сиджу і чекаю перед машиною, щоб час можна було краще використати для швидкої роботи.

Ось як це виглядає, коли індикатор жорсткого диска перестає блимати:

введіть тут опис зображення


2
Після процесу входу ... Всі фонові процеси і т.
Д. Цілий шебанг

3
Ви можете додати, що ви маєте на увазі під "завершеним завантаженням": всі завантажені програми або просто завантажена ОС Windows.
zurfyx

3
Я впевнений, що остаточної відповіді немає. Деякі фонові процеси чекають, поки ПК не працює, перш ніж почати роботу, деякі просто чекають фіксованого періоду. Важко передбачити, що FooUpdater.EXEбуде спати 7 хвилин.
MSalters

2
Можливо, замість цього ви могли б виявити, коли зайняті процеси з часом стають для вас простою? Якщо так, то чи не спрацьовує триггер завдання "В режимі очікування" для Windows Task Manager?
Ƭᴇcʜιᴇ007

2
Невже 3-4 хвилини справді достатньо часу для «швидкої гри»? oO
Jason C

Відповіді:


25

Тут є кілька потенційно корисних відповідей, але я думаю, що не було зроблено двох важливих моментів:

  1. Ні, неможливо програмно визначити, що Windows та всі програми запуску закінчили завантаження. Це по суті проблема зупинки, і жодна програма там не зможе відповісти на запитання "У цій довільній програмі, в який момент ми повинні сказати, що вона завантажена?".

  2. Яку актуальну проблему ви намагаєтеся вирішити? Усі відповіді тут намагаються знайти вирішення свого питання, але саме по собі таке питання відчуває, як у нього може бути відсутня якась важлива інформація. Ми хочемо вирішити вашу проблему, а не просто відповісти на питання .

Прочитавши ще раз своє запитання та йдучи саме по тому, що ви сказали, моя відповідь буде однією з таких:

  • Просто не хвилюйтеся з цього приводу і починайте користуватися комп’ютером. Завдання переднього плану є пріоритетними, і якщо у вас не відбувається щось по-справжньому незвичне, це не має значення, виконуючи фонові завдання.

Або:

  • Вручну перегляньте систему кілька разів і визначте максимальний час, який потрібен до того, як система буде «готова» відповідно до будь-яких показників. Отримайте невелику програму або сценарій таймера та додайте його до запуску вашої системи. Він може відображати повідомлення або відтворювати звук, коли минув вибраний час.

Це може не відповісти безпосередньо на ваше поточне запитання, але, сподіваємось, це корисно.


3
Це найкраща (і найбільш технічно правильна) відповідь з однієї причини ІМО: вона підкреслює неоднозначність у визначенні "всі запуски програми закінчили завантаження". Я згоден, що проблема зупинки є досить актуальною, але лише у випадку запущених процесів, які закінчуються. Хоча можна було відстежувати споживання процесора різних програм після завантаження і використовувати попередньо визначений поріг для диктування, коли комп'ютер "закінчився завантаженням", це охоплює лише невеликий набір випадків (зокрема, процеси, ефективність завантаження яких здебільшого пов'язана з процесором) .
Прорив

@ Попередження Добрий момент та редагуйте, дякую. Я дуже намагався висловити лаконічно думку про те, що для будь-якої заданої програми, запущеної при запуску, вона може зробити будь-яку кількість непередбачуваних речей: (1) запустити і потім припинити, (2) запустити і продовжити виконання, (3) запустити і нереститися додатково процесів, то виконуємо (1) або (2). Навіть основа ідеї "повного" споживання ресурсів не є ідеальною через затримку завантаження та той факт, що деякі програми можуть навіть чекати, поки система "не працює", щоб почати робити якісь додаткові роботи.
Нік

змушує замислюватися, наскільки корисним буде прапор "непрацюючий" або "завантажений" для стійких / демонових процесів (застереження буває, що корисно лише, якщо впроваджений у кожному процесі, на який ви чекаєте ...).
Прорив

@Breakthrough Якщо я не помиляюся, у linux ' systemdє таке, де, в принципі, можна було б запустити послугу після того, як всі інші запустилися через механізм залежності. Вам потрібно було б вказати їх усі вручну (мої systemdзнання не такі великі).
rubenvb

@Nick Дякуємо за міркування, що намагаються знайти рішення, це фактично дає нову перспективу. Я припускав, що може бути дуже просте рішення, але це не здається таким ... Я поки би використовував невелику програму таймера, яка дає мені знати, що зазначений час закінчився.
Firee

11

Чому б не використовувати програму Windows Task Scheduler та Event ID 100 для відтворення користувальницького звуку, коли Windows справді закінчено?

У розділі Тригери виберіть "На подію" та

  • Журнал: LogMicrosoft-Windows-Діагностика-Продуктивність / Операційний
  • Джерело: Діагностично-ефективні
  • Ідентифікатор події: 100

У розділі Дії виберіть "Запустити програму" за допомогою


1
Мені потрібно, коли і вікна, і всі програми запуску закінчуються завантаженням
Firee

2
FWIW: На той момент, коли була дана відповідь, ОП згадував лише "запуск Windows". Друга частина, що включає всі програми запуску, була додана пізніше!
nixda

Коментар анонімного користувача: Цей метод працює дуже добре, якщо час запуску трохи повільний або дуже повільний. Це просто і точно. Однак якщо час запуску швидкий, приблизно за 3 хв. (Або в межах, визначених дизайном Windows), жодна подія 100 не реєструється, тому звук не відтворюватиметься
nixda

9

Windows обробляє завантаження закінченим якщо воно становило 80% в режимі очікування (без урахування активності центрального процесора та диска) протягом 10 секунд після досягнення інтерфейсу робочого столу.

Щоб побачити точний час завантаження, використовуйте xbootmgr, щоб простежити, чому Windows повільно завантажується .


1
Моє запитання не в тому, щоб прискорити завантаження, я просто хочу вказати, коли закінчиться весь (із усіма програмами запуску тощо)
Firee

5
вам слід виправити повільне завантаження, а не намагатися відтворити звук.
magicandre1981

8

У мене встановлена ​​безкоштовна програма, якою я користувався давно, Soluto: https://www.soluto.com/

Я просто користувач, не зв’язаний.

Це працює для мене.

Це робить відлік і дозволяє вибирати саме те, що ви хочете завантажити при завантаженні.

Це також дозволяє затримати запуски.


Це працює в автономному режимі?
Firee

Цей веб-сайт / компанія тепер надає мобільний додаток для віддалених функцій безпеки; Я припускаю, що зараз домен належить комусь іншому.
mbuc91

6

Запустіть цей скрипт Python при запуску. Він буде відтворювати звук при запуску, коли використання процесора буде менше 20 відсотків протягом 5 секунд підряд:

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()

2

Ви можете додати звук до запуску.

Ви можете затримати процеси запуску і поставити звуковий ефект, який потрібно виконати першим. Інструмент Запуск Delayer робить це.

введіть тут опис зображення


Чи виявиться завантажувальне завантаження завершеним, або я повинен встановити ідеальний таймер?
Firee

@Firee Таймер не потрібен, просто скористайтеся опцією "автоматична затримка"
stderr

1

Це може бути не дуже ефективно, але це дешево.

Я, як правило, дивлюся на активність жорсткого диска (ви можете ідентифікувати його на корпусі чимось на зразок піктограми бази даних), поки світлодіод стабілізується і не миготить нечасто, тоді я знаю, що тепер я можу користуватися ПК без особливого відставання. Жорсткий диск, як правило, є вузьким місцем для ПК, і якщо він не використовується сильно, то у вас є місце для роботи.

Сподіваюся, що це допомагає.


1
Це відомо, але я повинен сидіти і чекати ...
Firee

4
Вам не доведеться. Ви можете делегувати будь-кого в будинку, щоб зробити це за вас. це легко!. : D
MadeOfAir

0

Я ніколи не використовував його сам, але планувальник завдань Windows дозволить вам створити завдання, яке спрацьовує для запуску "При запуску" або "При вході". Можливо, ви зможете запланувати завдання для запуску сценарію оболонки для доступу до Console.Beep () методу .NET Framework. Можливо, ви навіть зможете перетворити це на гідну мелодію.

Від Хей Христя сценарій! Блог

[console]::beep(500,300)

Змініть значення першого числа, щоб змінити крок (нічого нижче 190 або вище 8500 не можна почути), і змініть значення другого числа, щоб змінити тривалість

Редагувати: Як виявилося, метод Console.Beep () може не працювати в 64-бітних системах відповідно до документації MSDN .NET. Випробуваний звуковий сигнал у сценарії PowerShell, і він працює чудово.

Ви також можете перевірити свої процеси запуску. Це можна зробити, запустивши msconfig і натиснувши на сервіси. Ви також можете скористатися інструментом Sysinternals Autoruns.


0

За Windows документацією, яка останньою в порядку завантаження, є реєстр currentuser / runOnce (після папки запуску) ... але що завгодно завантажувати, деякі програми можуть зайняти тривалий час запуску.

Тож можливо перегляд діяльності процесора в пакетному файлі може бути хорошим рішенням:

@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 перевірок навантаження на процесор, завантаження процесора було нижче 15%. цей пакетний файл можна запустити за посиланням у запуску папки, а краще в реєстрі HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run


0

Ви написали:

«Моя машина (Windows 7 64-розрядна) потребує приблизно 3-4 хв., Щоб повністю завантажитися ...»

"Нормальне" завантаження займає близько 30 секунд включаючи доступ до облікового запису користувача. Там щось неправильно, і це треба виправити. Для того, щоб виправити це, ви повинні отримати де-дані. Пропоную вам дві утиліти для усунення цієї проблеми:

1) Авторуни

За допомогою цього ви зможете перевірити кожен процес, програму, драйвер, завантажений під час завантаження. Догляд Tka: це дуже потужний інструмент і НЕ видаляйте предмети, якщо ви не знаєте, що робите. Але ви можете зняти (відключити) деякі програми для входу в систему ...

2) Провідник системи

За допомогою цього інструменту ви зможете побачити всі запущені процеси та історію їх до запуску System Explorer. Також можливо сканувати всі ці процеси з метою безпеки (порівняно з базою даних процесів ..)

Перевірте це спочатку, вони дають нам відгуки.

Ви також можете перевірити послуги при запуску services.mscі стан пристроїв із devmgmt.msc(жовтий трикутник для дефектних пристроїв, жорсткий диск у режимі PIO замість DMA тощо) в адміністративних інструментах Windows ...

Сподіваюся, що це допоможе. Дайте нам знати.


Мене хвилює не те, чому час завантаження такий довгий. У мене може бути багато програм для запуску тощо ... Мені просто потрібна вказівка, коли завершиться весь процес завантаження, який включає Windows, Logon, усі програми запуску тощо
Firee

Просто зверніться до менеджера завдань ... Коли процесор знаходиться в режимі очікування, це зроблено. На ваш ПК потрібно 3,4 хвилини, правда? : - /
climenole

Ось як це виглядає, після того, як індикатори жорстких дисків перестануть блимати i.stack.imgur.com/nVToB.png
Firee

"Щось не так, і це потрібно виправити". Або просто антивірус дуже ретельно виконує свою роботу ...
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen Можливо. Як я вже сказав, я хвилююся не в тому, як довго це займе, я просто повинен знати, коли це завершено, і я можу почати користуватися системою без можливого відставання через фоновий процес, який все ще знаходиться в процесі запуску.
Firee

0

Я шукав щось подібне, і знайшов відповідь

я надішлю фактичний код пізніше, мабуть, але ось він іде

http://msdn.microsoft.com/en-us/library/aa394226%28v=vs.85%29.aspx

просто збережіть вміст останньої частини у форматі vbs та запустіть її, ви можете опитувати кожну системну подію та витягувати її повідомлення, яке відображається, просто.

що потрібно зробити, щоб знайти завершення послідовності завантаження, це запустити цей скрипт лише до того моменту, коли ідентифікатор події стане "100", що відповідає процесу завершення завантаження в системних подіях

зверніться: http://www.howtogeek.com/72420/how-to-use-event-viewer-to-find-your-pcs-boot-time/

Отже, коли у вас запущений цей скрипт, він опитуватиме всі події та чекатиме, коли ідентифікатор події буде 100, та попередить вас. те ж саме може бути використане в будь-якому сценарії, наприклад autoit

Просто хотілося, щоб усі це знали. тому що коли я шукав це. все, що я знайшов, - це ідея планувальника завдань Windows або найкраще солуто. насправді Soluto перестала працювати на моєму x64 ПК деякий час тому з якоїсь дивної причини. тому я хотів зробити сценарій сам, що привело мене до цього остаточного рішення ....

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.