2009-09-10 55 views
5

是否可以在C#(或.NET中)中更改當前正在執行的進程的名稱?我相信這是不可能的,但我的同事正試圖在假設情況下解決問題。在C#中更改進程名稱?

+2

ol'給朋友堵嘴的建議,呃? – JoshJordan 2009-09-10 00:27:36

+0

不確定你的意思,但表示同事正試圖解決實際問題。我不想用這個來創建一個惡意軟件程序。實際上,這是我認爲這不可能的原因之一,因爲我認爲它是一個安全漏洞。 – 2009-09-10 00:30:23

回答

11

不,不可以更改當前正在執行的進程的名稱。進程名稱由在執行開始時加載到操作系統中執行的名稱文件定義。你不能在以後改變這一點。 C#,託管代碼和本地代碼都是如此。

0

是的,這是可能的...至少在Linux下。 使用此:

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

我想,以同樣的方式:-)在Windows

+0

您能否提供其使用範例? – 2010-11-17 14:51:30

0

進程名稱派生從EXE用於運行該文件的工作窗口下存在的DLL。如果這是你的過程,你可以在你的EXE複製到新名稱的臨時文件夾,然後從那裏運行它...

這是假設它會在同一範圍內運行,等