日期:2014-05-19  浏览次数:20639 次

C#中关于进程、线程的基本知识,保证你答不上来!
其实我是相当希望您能答上来的,因为我答不上来,呵呵。

C#中与运行中的进程和线程相关的,并且是每个进程线程都不同的东西有哪些,尽量全一些,请把这些东西列一下,并作出详细解释。

比如:已分配给他的内存大小是不是固有属性,已请求的最大虚拟内存量是否为一特性。

等等,就是能不能找出该运行程序的进程、线程的特有属性。

我想找出一些特性看能不能唯一的区分一个软件!

------解决方案--------------------
强签名能不能用?
------解决方案--------------------
呵呵,问问题也问不到点子上,还什么“C#中关于进程、线程的基本知识”

先获取程序的进程句柄,再通过进程句柄,你可以获取很多很多的东西,如:进程加载的主模块和模块、线程数及属性、控件、控件类型、程序窗口标题等等。

详见《程序员秘书》--源代码--进程中,“鼠标获取窗口信息”、“系统进程管理”等等

http://www.psec.net.cn
------解决方案--------------------
如果你觉得俺的方法可取,就再给你一点儿代码,是关于如何去到某个进程所运行的.exe和.dll的:

System.Diagnostics.Process myProcess = System.Diagnostics.Process.GetProcessById(processID);
ProcessModule myProcessModule;

ProcessModuleCollection myProcessModuleCollection = myProcess.Modules;
Console.WriteLine( "Properties of the modules associated are: ");
// Display the properties of each of the modules.
for (int i = 0; i < myProcessModuleCollection.Count; i++)
{
myProcessModule = myProcessModuleCollection[i];
Console.WriteLine( "The moduleName is "
+ myProcessModule.ModuleName);
Console.WriteLine( "The " + myProcessModule.ModuleName + " 's base address is: "
+ myProcessModule.BaseAddress);
Console.WriteLine( "The " + myProcessModule.ModuleName + " 's Entry point address is: "
+ myProcessModule.EntryPointAddress);
Console.WriteLine( "The " + myProcessModule.ModuleName + " 's File name is: "
+ myProcessModule.FileName);
}