Le lancement d'un programme de façon asynchrone au démarrage de Windows 7, juste une fois, en utilisant uniquement le registre

Le programme que je suis en train de lancer est le bloc-notes de windows (pour un fichier readme après l'installation d'un programme nécessitant un redémarrage). Je suis sous Windows 7 Professionnel, avec des droits d'administrateur.

Je tiens à obtenir la solution de travail:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
Name: myregentry
Type: REG_SZ
Data: notepad.exe C:\test2.txt

Cependant, RunOnce est synchrone (http://msdn.microsoft.com/en-us/library/aa376977%28v=vs.85%29.aspx). Cela se traduit dans le bloc-notes de lancement sur le dessus d'un écran noir (capture d'écran @ tinypic), avec aucune possibilité de faire quelque chose, mais la lecture du texte. Démarrage attend, et reprend seulement après que le bloc-notes de la fenêtre est fermée. Ce n'est pas acceptable pour mon utilisation (ti ne pas confondre les utilisateurs).

J'ai pu obtenir la solution de travail:

1) Créer une entrée de registre:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
Name: myregentry
Type: REG_SZ
Data: C:\launchreadme.bat

2) Créer une auto-supprimer un fichier de commandes à C:\launchreadme.bat:

@ECHO OFF
start notepad.exe C:\test2.txt

REM **** Delete this script ****
DEL "%~f0"

C'est ce que je veux. Cependant j'aimerais savoir:

Est qu'il existe une manière plus propre de le faire, sans la génération de ce fichier de commandes, donc: uniquement à l'aide de la base de registre?

Cela pourrait être utile à d'autres, comme le web est plein d'exemple de "comment lancer le bloc-notes une fois à partir du registre", mais aucun d'entre eux (que j'ai pu trouver) la mention de cette question.

Informations supplémentaires:

  1. Je ne pouvais pas obtenir sur "démarrer" pour travailler dans l'entrée de registre (start notepad.exe C:\test1.txt ne fait rien au démarrage).
  2. RunServicesOnce (au lieu de RunOnce), qui sert à lancer des programmes à la fois, de manière asynchrone, apparemment n'existe plus sous Windows 7.
  3. Exécuter (au lieu de RunOnce) est également asynchrone et fonctionne bien. Mais évidemment, je ne veux pas lancer ce fichier après chaque redémarrage.
Ce sujet de l'écriture à HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce à la place? Ce ne sera pas exécutée jusqu'à ce que l'utilisateur se connecte.
Blanc: Pour être juste je n'avais pas testé votre solution. Cependant, je suis en train d'écrire dans le registre à partir d'un (INS) installateur de laquelle les demandes de droits d'administrateur. En raison de ce HKCU ne serait probablement pas fonctionner si l'utilisateur ne dispose pas des droits d'administrateur.

OriginalL'auteur tom_q | 2013-06-27