2009-09-10 21 views
5

¿Es posible cambiar el nombre de un proceso actualmente en ejecución en C# (o .NET en general)? Creo que no es posible, pero mi compañero de trabajo está tratando de resolver un problema bajo la suposición de que sí lo es.¿Cambiar el nombre del proceso en C#?

+2

El viejo consejo para un amigo, ¿eh? – JoshJordan

+0

No estoy seguro de lo que quiere decir, pero dicho compañero de trabajo está tratando de resolver un problema real. No estoy tratando de crear un programa de malware con esto. En realidad, esta es una de las razones por las que creo que no es posible porque la consideraría una vulnerabilidad de seguridad. –

Respuesta

11

No, no es posible cambiar el nombre del proceso actualmente en ejecución. Los nombres de proceso se definen mediante el archivo de nombre que se cargó en el sistema operativo para su ejecución en el momento en que comenzó la ejecución. No puedes cambiar esto en un momento posterior. Esto es cierto para C#, código administrado y nativo.

0

Sí, es posible ... al menos en Linux. El uso de este :

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

supongo que existe una DLL en Windows que funciona de la misma manera :-)

+0

¿Puede proporcionar la muestra de su uso? –

0

Nombre del proceso en Windows se deriva de la EXE utiliza para ejecutar el archivo. Si es su proceso, puede copiar el archivo EXE a una carpeta temporal con un nuevo nombre, y luego ejecutarlo desde allí ...

Esto supone que estaría funcionando en el mismo contexto, etc.

Cuestiones relacionadas