2009-09-10 6 views
5

Est-il possible de changer le nom d'un processus en cours d'exécution en C# (ou .NET en général)? Je crois que ce n'est pas possible, mais mon collègue essaie de résoudre un problème en supposant que c'est le cas.Modifier le nom du processus en C#?

+2

Le vieux conseil pour un ami gag, hein? – JoshJordan

+0

Vous ne savez pas ce que vous voulez dire, mais votre collègue essaie de résoudre un problème réel. Je n'essaie pas de créer un programme malveillant avec ça. En fait, c'est l'une des raisons pour lesquelles je pense que ce n'est pas possible parce que je considère qu'il s'agit d'une faille de sécurité. –

Répondre

11

Non, il est impossible de changer le nom du processus en cours d'exécution. Les noms de processus sont définis par le fichier de nom qui a été chargé dans le système d'exploitation pour être exécuté au moment où l'exécution a commencé. Vous ne pouvez pas changer cela plus tard. Cela est vrai pour le code C#, géré et natif.

0

Oui c'est possible ... au moins sous linux. En utilisant cette :

[System.Runtime.InteropServices.DllImport("libc")] 
// Linux 
private static extern int prctl (int option, byte[] arg2, IntPtr arg3, IntPtr arg4, IntPtr arg5); 

Je suppose une dll existe sous Windows qui fonctionne de la même manière :-)

+0

Pouvez-vous s'il vous plaît fournir l'exemple de son utilisation? –

0

Nom du processus dans Windows est dérivé du EXE utilisé pour exécuter le fichier. Si c'est votre processus, vous pouvez copier votre EXE dans un dossier temporaire avec un nouveau nom, puis exécutez à partir de là ...

Cela suppose que ce serait en cours d'exécution dans le même contexte, etc.

Questions connexes