Comment savoir quand Windows et tous les programmes de démarrage ont fini de démarrer?

37

Ma machine (Windows 7 64 bits) prend environ 3 à 4 minutes pour démarrer complètement. Existe-t-il un moyen d'indiquer que le démarrage est terminé, une sorte de son / de pop-up, en utilisant la fonctionnalité intégrée de Windows ou par une application tierce?

J'ai besoin lorsque les fenêtres et tous les programmes de démarrage ont fini de démarrer

Je m'assois généralement et attends parfois devant la machine, ce temps pourrait être mieux utilisé pour un quickie.

Voici à quoi ça ressemble quand le voyant du disque dur arrête de clignoter:

entrez la description de l'image ici

Firee
la source
2
Après le processus de connexion ... Tous les processus d'arrière-plan, etc. Tout le processus
Firee
3
Vous voudrez peut-être ajouter ce que vous entendez par "fin du démarrage": tous les programmes chargés ou simplement le système d'exploitation Windows chargé.
Zurfyx
3
Je suis à peu près sûr qu'il n'y a pas de réponse définitive. Certains processus d'arrière-plan attendent que le PC devienne inactif avant de démarrer, d'autres n'attendent qu'une période déterminée. Il est difficile de prédire qu’il FooUpdater.EXEdormira 7 minutes.
MSalters
2
Peut-être au lieu de cela, détecter si des processus occupés finissent par devenir inactifs pour vous? Si tel est le cas, le déclencheur de tâche "Au repos" du Gestionnaire des tâches de Windows ne suffit-il pas?
cʜιᴇ007
2
Est-ce que 3-4 minutes sont vraiment suffisantes pour un "quickie"? oO
Jason C

Réponses:

25

Il y a plusieurs réponses potentiellement utiles ici, mais je pense qu'il y a deux points importants qui n'ont pas été soulevés:

  1. Non, il n'est pas possible de déterminer par programme que Windows et tous les programmes de démarrage ont fini de démarrer. C’est essentiellement le problème de l’ arrêt et aucun programme ne pourra répondre à la question "Pour ce programme arbitraire, à quel moment devrions-nous dire qu’il a été chargé?".

  2. Quel est le problème que vous essayez de résoudre? Toutes les réponses ici tentent de trouver une solution à votre question, mais la question elle-même donne l’impression qu’il manque peut-être des informations importantes. Nous voulons résoudre votre problème, pas seulement répondre à la question .

En relisant votre question et en reprenant simplement ce que vous avez dit, ma réponse serait l'une des suivantes:

  • Ne vous inquiétez pas et commencez à utiliser votre ordinateur. Les tâches de premier plan sont hiérarchisées et à moins que quelque chose de vraiment inhabituel ne se produise, le fait que des tâches d’arrière-plan soient exécutées n’a aucune importance.

Ou:

  • Observez manuellement le système plusieurs fois et déterminez le temps maximum qu'il faut avant que le système soit prêt, en fonction de la métrique dont vous disposez. Procurez-vous un petit programme ou script et ajoutez-le au démarrage de votre système. Il peut afficher un message ou émettre un son lorsque le temps que vous avez choisi est écoulé.

Cela ne répond peut-être pas directement à votre question actuelle, mais espérons que cela soit utile.

Entaille
la source
3
C’est la meilleure réponse (et la réponse technique la plus correcte) pour une raison unique, OMI: elle met en évidence l’ambiguïté de la définition de "tous les programmes de démarrage ont fini de démarrer". Je conviens que le problème d’arrêt est tout à fait pertinent, mais seulement dans le cas où les processus lancés s’achèvent. Bien que l’on puisse surveiller la consommation en CPU de divers programmes après le démarrage et utiliser un seuil prédéfini pour dicter le moment où l’ordinateur a «fini de démarrer», cela ne couvre qu’un petit sous-ensemble de cas (notamment des processus dont les performances de chargement sont principalement liées au processeur) .
Percée
@ Breakthrough Bon point et éditer, merci. J'essayais vraiment d'exprimer de manière succincte l'idée que, pour tout programme exécuté au démarrage, il pouvait faire un certain nombre de choses imprévisibles: (1) démarrer puis se terminer, (2) démarrer et continuer à s'exécuter, (3) démarrer et générer des tâches supplémentaires processus, puis faire (1) ou (2). Même l'idée de "complète" sur la consommation de ressources n'est pas idéale en raison du chargement différé et du fait que certains programmes peuvent même attendre que le système soit "inactif" pour commencer un travail supplémentaire.
Nick
On peut se demander à quel point un indicateur "inactif" ou "démarré" serait utile pour les processus persistants / démons (attention, il n’est utile que s’il est implémenté dans tous les processus que vous attendez ...).
Percée
@ Breakthrough Si je ne me trompe pas, Linux ' systemda ceci, où, en principe, on peut démarrer un service après que tous les autres ont démarré à travers son mécanisme de dépendance. Cependant, vous devrez tous les spécifier manuellement (mes systemdconnaissances ne sont pas très bonnes).
rubenvb
@ Nick Merci pour le raisonnement derrière essayer de trouver la solution, cela donne une nouvelle perspective. Je pensais qu'il y aurait une solution très simple, mais cela ne semble pas être le cas ... Pour le moment, j'utiliserais un petit programme de minuterie, ce qui me permet de savoir que la durée spécifiée est terminée.
Firee
11

Pourquoi ne pas utiliser le planificateur de tâches Windows et l'ID d'événement 100 pour reproduire un son personnalisé lorsque Windows est vraiment terminé?

Sous Déclencheurs, sélectionnez "Sur un événement" et

  • Journal: LogMicrosoft-Windows-Diagnostics-Performance / Operational
  • Source: Diagnostic-Performance
  • ID d'événement: 100

Sous Actions, sélectionnez "Démarrer un programme" avec

Nixda
la source
1
J'ai besoin lorsque les deux fenêtres et tous les programmes de démarrage ont fini de démarrer
Firee
2
FWIW: Au moment où cette réponse a été donnée, le PO ne mentionnait que le "démarrage de Windows". La deuxième partie incluant tous les programmes de démarrage a été ajoutée plus tard!
Nixda
Commentaire d'un utilisateur anonyme: Cette méthode fonctionne vraiment bien si votre temps de démarrage est un peu lent ou très lent. C'est simple et précis. Toutefois, si votre temps de démarrage est rapide, inférieur à environ 3 min (ou dans les limites définies par la conception de Windows), aucun événement 100 n'est enregistré et aucun son ne sera
diffusé
9

Windows traitera le démarrage comme terminé s'il était inactif à 80% (à l'exclusion de l'activité du disque et du processeur de faible priorité) pendant 10 secondes après avoir atteint l'interface utilisateur du bureau.

Pour voir l'heure exacte du démarrage, utilisez xbootmgr pour identifier pourquoi Windows démarre lentement .

magicandre1981
la source
1
Ma question n'est pas d'accélérer le démarrage, je veux juste une indication lorsque le démarrage complet (avec tous les programmes de démarrage, etc.) est terminé
Firee
5
vous devriez corriger le démarrage lent au lieu d'essayer de jouer un son.
magicandre1981
8

J'ai installé un programme gratuit que j'ai utilisé pendant longtemps, Soluto: https://www.soluto.com/

Je ne suis qu'un utilisateur, pas connecté.

Ça marche pour moi.

Il fait un décompte et vous permet de sélectionner exactement ce que vous voulez charger au démarrage.

Cela vous permet également de retarder les départs.

Xavierjazz
la source
Cela fonctionne-t-il hors ligne?
Firee
Ce site / cette entreprise fournit désormais une application mobile pour les fonctionnalités de sécurité à distance; Je suppose que le domaine appartient à quelqu'un d'autre maintenant.
mbuc91
6

Exécutez ce script Python au démarrage. Le son de départ sera lu lorsque l’utilisation du processeur aura été inférieure à 20% pendant 5 secondes consécutives:

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()
Benjamin Schug
la source
2

Vous pouvez ajouter un son au démarrage.

Vous pouvez retarder les processus de démarrage et mettre un effet sonore à exécuter en premier. C'est l'outil Startup Delayer qui effectue cela.

entrez la description de l'image ici

stderr
la source
Est-ce que cela détectera le démarrage complet ou dois-je mettre une minuterie idéale?
Firee
@Firee Il n'y a pas besoin d'une minuterie, utilisez simplement l'option "délai automatique"
stderr
1

Cela peut ne pas être très efficace, mais c'est bon marché.

Je regarde habituellement le voyant d'activité du disque dur (vous pouvez l'identifier sur le boîtier par quelque chose comme une icône de base de données), jusqu'à ce que le voyant se stabilise et clignote rarement, alors je sais que je peux maintenant utiliser l'ordinateur sans trop de retard. Le disque dur constitue généralement le goulot d'étranglement du PC. Si vous ne l'utilisez pas beaucoup, vous avez de la place pour le travail.

J'espère que ça t'as aidé.

MadeOfAir
la source
1
C'est connu, mais je dois m'asseoir et attendre ...
Firee
4
Tu n'es pas obligé. Vous pouvez déléguer n'importe qui dans la maison pour le faire à votre place. Imaginez-le. c'est facile!. : D
MadeOfAir
0

Je ne l'ai jamais utilisé moi-même, mais le Planificateur de tâches Windows vous permettra de créer une tâche qui est déclenchée pour exécuter "Au démarrage" ou "À l'ouverture de session". Vous pourrez peut-être planifier une tâche pour exécuter un script PowerShell afin d'accéder à la méthode Console.Beep () du .NET Framework. Vous pouvez même être capable de le transformer en une mélodie décente.

De Hey Scripting Guy! Blog

[console]::beep(500,300)

Modifiez la valeur du premier nombre pour modifier la hauteur (vous ne pouvez pas entendre quoi que ce soit inférieur à 190 ou supérieur à 8500), et modifiez la valeur du deuxième nombre pour modifier la durée.

Edit: il se peut que la méthode Console.Beep () ne fonctionne pas sur les systèmes 64 bits selon la documentation MSDN .NET. Testé bip dans un script PowerShell et cela fonctionne bien.

Vous pouvez également souhaiter vérifier vos processus de démarrage. Vous pouvez le faire en exécutant msconfig et en cliquant sur services. Vous pouvez également utiliser l'outil Autoruns de Sysinternals.

Sandwich au poisson rouge
la source
0

Selon la documentation Windows, le dernier en ordre de chargement est registre currentuser / runOnce (après le dossier de démarrage) ... mais quel que soit l'ordre de chargement, certains programmes peuvent nécessiter un temps de démarrage long.

Alors peut-être que regarder l’activité du processeur dans un fichier batch peut être une bonne solution:

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

... et après avoir constaté que, lors des 10 derniers contrôles de la charge du processeur, la charge était inférieure à 15%. ce fichier de commandes peut être démarré par un lien dans le dossier de démarrage, ou mieux dans le registre HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run

Asain Kujovic
la source
0

Tu as écrit:

«Ma machine (Windows 7 64 bits) prend environ 3-4 minutes pour démarrer complètement ...»

Un démarrage "normal" prend environ 30 secondes, accès au compte utilisateur compris. Il y a quelque chose qui ne va pas et cela doit être réparé. Pour résoudre ce problème, vous devez obtenir des données. Je vous suggère deux utilitaires pour résoudre ce problème:

1) Autoruns

Avec celui-ci, vous pouvez vérifier chaque processus, programme, pilote chargé pendant le processus de démarrage. Tka care: c’est un outil très puissant et ne supprimez pas d’éléments si vous ne savez pas ce que vous faites. Mais vous pouvez décocher (désactiver) certains démarrages programmes de connexion au ...

2) Explorateur de système

Avec cet outil, vous pouvez voir tous les processus démarrés et leur historique jusqu'au démarrage de l'Explorateur système. En outre, il est possible d'analyser tous ces processus à des fins de sécurité (par rapport à une base de données de processus ..)

Cochez cette première ils nous donnent quelques commentaires.

Vous pouvez également vérifier les services au démarrage avec services.mscet l'état des périphériques avec devmgmt.msc(triangle jaune pour les périphériques défectueux, disque dur en mode PIO au lieu de DMA, etc.) dans les outils d'administration Windows ...

J'espère que cette aide. Laissez nous savoir.

climenole
la source
Mon souci n'est pas pourquoi le temps de démarrage est si long. J'ai peut-être beaucoup de programmes de démarrage, etc. Il me faut simplement une indication de la fin du processus de démarrage, y compris Windows, la connexion, tous les programmes de démarrage, etc.
Firee
Il suffit de vérifier avec le gestionnaire de tâches ... Lorsque le processeur est à l'état inactif, c'est fait. Prend 3,4 minutes pour votre PC, non? : - /
climenole
Voilà à quoi ça ressemble quand les voyants des disques durs cessent de clignoter i.stack.imgur.com/nVToB.png
Firee
"Quelque chose ne va pas et cela doit être réparé". Ou bien c'est simplement que l'antivirus fait son travail de manière très minutieuse ...
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Peut-être. Comme je l'ai dit, je ne m'inquiète pas du temps que cela prend, j'ai juste besoin de savoir quand son achèvement et je peux commencer à utiliser le système sans retard possible en raison du processus d'arrière-plan toujours en cours de démarrage.
Firee
0

Je cherchais quelque chose comme ça et j'ai trouvé la réponse

Je posterai le code réel plus tard probablement, mais ici ça va

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

il suffit de sauvegarder le contenu de la dernière partie en tant que fichier vbs et de l’exécuter, vous pouvez interroger chaque événement système et extraire son message affiché, en toute simplicité.

Pour trouver l'achèvement de la séquence d'amorçage, il faut que ce script soit exécuté uniquement jusqu'à ce que l'ID d'événement soit égal à «100», ce qui correspond au processus d'achèvement de l'amorçage dans les événements système.

voir: http://www.howtogeek.com/72420/how-to-use-event-viewer-to-find-your-pcs-boot-time/

Ainsi, lorsque vous avez ce script au démarrage, il interroge tous les événements et attend que l'ID d'événement soit égal à 100 et vous alerte. la même chose peut être utilisée dans n'importe quel outil de script comme autoit

Je voulais juste que tout le sache. parce que quand j'ai cherché ça. tout ce que j'ai trouvé était l'idée de planificateur de tâches Windows ou Soluto au mieux. En fait, Soluto a cessé de fonctionner sur mon ordinateur x64 il y a quelque temps pour une raison étrange. donc je voulais faire un script moi-même qui m'a conduit à cette solution finale ....

rajeshontheweb
la source