Certaines applications d’installation arrêtent (ou semblent arrêter) le démarrage normal de Windows. L’ordinateur démarre, l’utilisateur se connecte et le programme d’installation démarre avant les autres (comme l’explorateur Windows).
Comment puis-je reproduire ce comportement dans mon propre programme?
Par exemple
Si vous souhaitez démarrer une application avant le démarrage du shell, vous pouvez append une valeur à la valeur Userinit
dans le registre. Dans cette clé:
HKEY_LOCAL_MACHINE \ LOGICIEL \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon
Il y a une valeur nommée Userinit
. Changez-le pour que votre programme soit exécuté avant userinit.exe. Par exemple, pour démarrer le bloc-notes avant que le shell / tout le rest ne soit initialisé:
C: \ WINDOWS \ system32 \ notepad.exe, C: \ Windows \ system32 \ userinit.exe
Utilisez des virgules pour séparer les programmes à démarrer.
Cela fonctionne pour Windows XP, Vista et 7.
Je ne l’ai pas essayé mais je suppose que cela est fait par l’entrée de registre
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup
Il y a encore plus de clés de registre – voir la liste complète documentée ici: Définition des clés RunOnce dans le registre
Mais pour votre cas d’utilisation, je vous recommande de démarrer votre application en tant que shell de bureau similaire à la solution proposée par “vcsjones”. Lorsque votre programme est terminé, vous pouvez appeler explorer.exe
pour lancer le chargement du bureau normal.
Vous pouvez éventuellement envelopper un fichier de commandes Windows .bat
autour de explorer.exe
@echo off something.exe explorer.exe
Mais cela ne garantirait pas vraiment qu’il est toujours démarré avant explorer.exe
Vous pouvez éventuellement modifier une valeur de registre pour sélectionner un autre «shell» au lieu de l’explorateur. .
Si c’est ce que vous cherchez réellement.
Vous devriez jeter un oeil au Planificateur de tâches Windows. Les tâches peuvent être planifiées pour s’exécuter lorsqu’un utilisateur (spécifique ou quelconque) se connecte. L’interface utilisateur fournie par Windows illustre ce que l’on peut réellement faire avec cette fonctionnalité Windows standard.
Une autre solution consiste à écrire un service Windows (Windows Installer .msi est en fait un service).
Je ne suis pas sûr que vous serez en mesure de bloquer Windows Explorer si …