函数:此函数用于打开现有流程对象并返回流程句柄。
函数原型: handle open process (dworddwdesiredaccess,BOOL bInheritHandle,DWORD dwProcessId );
参数:
dwDesiredAccess :访问权限。
bInheritHandle :继承标志。
dwProcessId :进程ID。
要在C#中使用此函数,请首先导入命名空间。
using system.runtime.interop services;
然后编写API参照部分的代码,放入class内部
[dllimport(Kernel32.dll ) ] publicstaticexternintopenprocess (intdwdesiredaccess,bool bInheritHandle,intdwprocessssion )
该函数有三个参数,第一个是访问权限、process _ VM _ readorprocess _ VM _ write; 第二个是继承标志;第三个是进程ID,由GetWindowThreadProcessId获取。 例如:
intptrhwnd=findwindow(null,'计算机'); constintprocess _ all _ access=0x1f 0f ff; const int PROCESS_VM_READ=0x0010; constintprocess _ VM _ write=0x 0020; if(HWND!=IntPtr.Zero ) { int calcID; int calc进程; getwindowthreadprocessid(hwnd,out calcID; calc process=open process (process _ VM _ read|process _ VM _ write,false,calcID ); //calc process=open process (process _ all _ access,false,calcID ); }else{ MessageBox.Show (找不到'窗口); }