Je souhaite intercepter un programme donné avant qu'il ne fonctionne et exécute mon propre programme d'abord

Je vais travailler avec Python 3, principalement intéressé par Windows pour un début. Si cela fait une différence, puis Windows 10 spécifiquement.

Exemple de ce que je veux faire:

  1. L'utilisateur démarre mon script.
  2. L'utilisateur décide de classer en noir le jeu Dota 2.
  3. L'utilisateur essaie d'ouvrir Dota 2.
  4. Parce que Dota 2 est sur la liste noire, mon script s'exécute au lieu de Dota 2.
  5. Une fois mon script terminé, Dota 2 exécute ou ne s'exécute pas, selon ce que mon script choisit. Ce sera finalement contrôlé par l'Utilisateur.
  6. L'utilisateur ferme mon script.
  7. L'utilisateur essaie d'ouvrir Dota 2.
  8. Dota 2 s'ouvre tout de suite sans interruption.

Les trois dernières lignes signifient qu'il doit y avoir une façon de l'allumer et l'éteindre, donc pas une solution permanente. Mon hypothèse de base est que, une fois que je sais comment faire la première partie, la deuxième partie sera facile. Je l'ai encore indiqué pour des éclaircissements.

Je souhaite vraiment savoir comment accéder à l'interception des programmes.

  1. L'utilisateur essaie d'ouvrir Dota 2.
  2. Parce que Dota 2 est sur la liste noire, mon script s'exécute au lieu de Dota 2.

Les options d'exécution des fichiers d'image de Windows vous permettent d'exécuter votre programme chaque fois qu'un exécutable de votre choix est démarré.

Supposons que nous voulons exécuter C:\My Folder\new app.exe chaque fois que l'utilisateur tente de démarrer C:\Windows\old app.exe . Pour ce faire, exécutez la commande suivante:

 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\old app.exe" /v Debugger /d "C:\My Folder\new app.exe" /f 

Remarque: Si une clé appelée old app.exe n'existe pas (probablement), cette commande va la créer.

Cela crée une nouvelle clé de Registre avec le nom du programme pour être "détourné" et crée une nouvelle valeur de chaîne nommée Débogueur qui a ses données définies sur le chemin de l'exécutable de remplacement. Il peut s'agir de tout fichier exécutable, y compris les scripts de lot .CMD .

La modification prend effet immédiatement. Maintenant, chaque fois qu'un exécutable nommé old app.exe est exécuté, Windows démarrera C:\My Folder\new app.exe place.

Pour renvoyer tout à la normale, supprimez l' old app.exe clé de l'application.exe:

 reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\old app.exe" /f 

Il suffit d'intégrer ces commandes dans votre script pour accomplir vos résultats souhaités.