Maison >développement back-end >C++ >Comment puis-je envoyer des clés à une application en arrière-plan dans .NET ?
Envoi de clés aux applications en arrière-plan : un guide complet
La tâche consistant à envoyer une clé spécifique (par exemple, "k") à une autre application , tel que le Bloc-notes, nécessite une compréhension plus approfondie de la gestion des processus dans .NET. Examinons le problème et ses solutions potentielles.
Pour envoyer des clés à une autre application, celle-ci doit être au premier plan. Dans le code donné, cette étape est tentée à l'aide de SetForegroundWindow. Cependant, l'implémentation peut nécessiter un affinement supplémentaire.
Pour garantir que le bloc-notes est bien la fenêtre active avant d'envoyer la clé, nous devons :
Voici une version améliorée du code :
[DllImport("User32.dll")] static extern int SetForegroundWindow(IntPtr point); Process p = Process.GetProcessesByName("notepad").FirstOrDefault(); if (p != null) { IntPtr h = p.MainWindowHandle; SetForegroundWindow(h); SendKeys.SendWait("k"); }
Si le bloc-notes n'est pas encore exécuté, nous devons le démarrer et attendre qu'il soit prêt avant d'envoyer le clé :
Process p = Process.Start("notepad.exe"); p.WaitForInputIdle(); IntPtr h = p.MainWindowHandle; SetForegroundWindow(h); SendKeys.SendWait("k");
Il convient de noter que si le Bloc-notes est démarré avec des privilèges élevés (par exemple, en tant qu'administrateur) et que votre application ne l'est pas, le L’appel SetForegroundWindow peut ne pas fonctionner correctement. Dans de tels cas, explorez des méthodes alternatives ou ajustez les autorisations des applications en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!