login007的备忘录
好吧,这里只是我用来静下心,做好记录的地方。
//使用作业的目的就是为了限制和管理一组进程。在程序中可以使用CreateJobObject函数来创建作业对象,函数语法如下:
 
HANDLE CreateJobObject(
 
LPSECURITY_ATTRIBUTES lpJobAttributes, // 表示作业对象的安全属性,可以为NULL
 
LPCTSTR lpName // 作业对象的名称,其他进程可以通过该名称访问作业对象
 
);
 
//在有些操作系统中并不能直接使用CreateJobObject函数,需要用户从“Kernel32.dll”中导入。创建作业对象的代码如下:
 
typedef HANDLE (__stdcall* funCreateJobObject)(LPSECURITY_ATTRIBUTES lpJobAttributes, LPCTSTR lpName);
 
HINSTANCE hInstance = LoadLibrary(“Kernel32.dll”);
 
funCreateJobObject CreateJobObject = (funCreateJobObject)GetProcAddress(hInstance, “CreateJobObjectA”);
 
m_hJob = CreateJobObject(NULL, “ProcessGroup”);
 
FreeLibrary(hInstance);
 
//为了将进程放入作业对象中,需要在程序中调用AssignProcessToJobObject函数,该函数语法如下:
 
BOOL AssignProcessToJobObject(
 
HANDLE hJob,   // 表示作业对象句柄
 
HANDLE hProcess // 表示向作业中添加的进程句柄
 
);
 
//示例代码:
 
//(1)创建进程:
 
STARTUPINFO stInfo;
 
memset(&stInfo, 0, sizeof(STARTUPINFO));
 
PROCESS_INFORMATION procInfo;
 
memset(&procInfo, 0, sizeof(PROCESS_INFORMATION);
 
CreateProcess(NULL, “notepad.exe”, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &stInfo, &procInfo);
 
//(2)向作业添加进程:
 
BOOL ret = AssignProcessToJobObject(m_hJob, procInfo.hProcess);
 
if(ret)
     MessageBox(“向作业添加进程成功!”);
 
//终止作业中的进程:
 
//作业能够管理一组进程,当然也可以终止作业中的进程。在程序中可以使用TerminateJobObject函数终止作业中的所有进程,该函数语法如下:
 
BOOL TerminateJobObject(
 
HANDLE hJob, // 表示作业对象句柄
 
UINT uExitCode // 表示进程退出代码
 
);
 
//下面的代码将终止作业中的所有进程:
 
    TermianteJobObject(m_hJob, 0);
 
//限制作业中的进程:
 
//在程序中可以调用SetInfomationJobObject函数可以为作业添加各种限制,该函数语法如下:
 
BOOL SetInfomationJobObject(
 
HANDLE hJob, // 作业句柄
 
JOBOBJECTINFOCLASS jobObjectInformationClass, // 一个枚举值,表示限制的类型
 
LPVOID lpJobObjectInformation, // 为作业对象设置的限制
 
DWORD cbJobObjectInformationLength // lpJobObjectInfomation占用的字节大小
 
);
 
//向作业中添加限制读取剪贴板的信息:
 
JOBOBJECT_BASIC_UI_RESTRICTIONS limitInfo;
 
limitInfo.UIRestrictionsClass = JOB_OBJECT_UILIMIT_READCLIPBOARD;
 
SetInformationJobObject(m_hJob, JobObjectBasicUIRestrictions,&limitInfo, sizeof(JOBOBJECT_BASIC_UI_RESTRICTIONS));
 
posted on 2011-08-13 11:33  login007  阅读(928)  评论(0编辑  收藏  举报