博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows作业
阅读量:5080 次
发布时间:2019-06-12

本文共 1976 字,大约阅读时间需要 6 分钟。

1、什么是Windows作业

  Windows作业实际上一个进程组,可以给作业设置权限,一旦进程加入到作业内,进程的权限将会被作业限制。

2、创建一个作业

  HANDLE CreateJobObject( LPSECURITY_ATTRIBUTES lpJobAttributes,        // 安全属性

                LPCTSTR lpName                        //名称

               );                              //返回创建的Job句柄

3、设置作业权限

  BOOL SetInformationJobObject( HANDLE hJob,                         //作业句柄

                   JOBOBJECTINFOCLASS JobObjectInformationClass,     //作业权限的类型
                   LPVOID lpJobObjectInformation,               //类型所对应的数据结构的地址
                   DWORD cbJobObjectInformationLength          //类型所对应的数据结构的长度
                  );

4、将进程加入作业

  BOOL AssignProcessToJobObject( HANDLE hJob,                 //作业句柄

                    HANDLE hProcess               //进程句柄

                   );

5、关闭作业

  BOOL CloseHandle(HANDLE hObject);              //作业句柄

6、结束作业 

  使用TerminateJobObject结束作业,参数和TerminateProcess一样,但是并不是所有情况下,作业内的进程都能被结束.

//创建进程函数 HANDLE Create( LPSTR pszPath ){
  //指定新进程的主窗口特性 STARTUPINFO si = { 0 };   //进程信息 PROCESS_INFORMATION pi = { 0 }; si.cb = sizeof( si );   //创建进程 CreateProcess( pszPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ); return pi.hProcess;}
void Job( ){    //创建Job对象    HANDLE hJob =CreateJobObject( NULL, "MyJob" );    //设置权限    JOBOBJECT_BASIC_UI_RESTRICTIONS ui = {
0}; ui.UIRestrictionsClass =JOB_OBJECT_UILIMIT_READCLIPBOARD | JOB_OBJECT_UILIMIT_WRITECLIPBOARD; SetInformationJobObject( hJob, JobObjectBasicUIRestrictions, &ui, sizeof(ui) ); //创建进程 HANDLE hProc = Create("c:\\windows\\system32\\mspaint.exe" ); //将进程加入作业 AssignProcessToJobObject(hJob, hProc ); hProc = Create("c:\\windows\\system32\\mspaint.exe" ); AssignProcessToJobObject(hJob, hProc ); getch( ); //结束作业 TerminateJobObject( hJob, 0 ); //关闭Job CloseHandle( hJob );}

 

转载于:https://www.cnblogs.com/zjzsky/p/3475520.html

你可能感兴趣的文章
cer证书签名验证
查看>>
新手Python第一天(接触)
查看>>
【bzoj1029】[JSOI2007]建筑抢修
查看>>
synchronized
查看>>
codevs 1080 线段树练习
查看>>
[No0000195]NoSQL还是SQL?这一篇讲清楚
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>