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 = { };
  //进程信息
PROCESS_INFORMATION pi = { };
si.cb = sizeof( si );
  //创建进程
CreateProcess( pszPath,
NULL, NULL, NULL, FALSE, ,
NULL, NULL, &si, &pi );
return pi.hProcess;
}
void Job( )
{ //创建Job对象
HANDLE hJob =CreateJobObject( NULL, "MyJob" );
//设置权限
JOBOBJECT_BASIC_UI_RESTRICTIONS ui = {};
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, );
//关闭Job
CloseHandle( hJob );
}

Windows作业的更多相关文章

  1. Powershell 命令行安装 Windows 作业系统

    使用 powershell 完全安装或重灌 windows 作业系统的正确姿势 note:完全使用 powershell 指令,绝非在 powershell 终端下键入传统的 cmd 指令使用传统的 ...

  2. 最新版微软视窗(Windows)作业系统下载(2020-08-19)

    为了更好的使用WSL(Windows Subsystem For Linux),不得不用最新的windows 10 2004版了,这个版本的WSL已经是第二版了,即WSL2.下面给出下载地址 系统发布 ...

  3. 走进windows编程的世界-----windows进程

    Windows进程  1 Windows进程    进程是一个容器,包括了一个应用程序实例的各种资源.Windows多任务的操作系统,因此能够同一时候运行多个进程.      2 Windows进程的 ...

  4. windows命令提示符

    基本命令: d: cd wenjian cd.. dir -------------- ---- ------ ------ ------ ---- 维基:dos DOS,是磁盘操作系统(英文:Dis ...

  5. 安卓手机运行WINDOWS

    http://www.pcdiy.com.tw/detail/1974 我的ZenFone 2手机可以跑Windows啦! 就在台风来袭,有人正准备去泛舟的那天,国外的XDA论坛神人则是选择让自己的Z ...

  6. 迷时师度,悟了自度(时间的边际效应),附VC参考书

    12年前看过这篇文章,今天又看到了,还是有些感慨的.上课的时间虽然已经永远远去,用整块的时间去学习已经不可能,但道理还是要记着的,没准依然有用,自勉.------------------------- ...

  7. 【Chromium中文文档】Chrome/Chromium沙箱 - 安全架构设计

    沙箱 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Sandbox.ht ...

  8. 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 一

    1. Linux的档案权限与目录配置      一.基础知识:             a.分为三类,拥有者(owner).群组(group).其他人(other)             b.三个核 ...

  9. 使用 TRESTClient 与 TRESTRequest 作为 HTTP Client

    在 Delphi XE 推出以前的年代,Delphi的发展方向是笔直朝向资料库连结Windows 应用程式这个目标不断前进的,从Delphi 1开始,到Delphi 7,Delphi奠定了VB Kil ...

随机推荐

  1. mybatis中几种typeHandler的定义使用

    1.存储到数据库, 将LONG数组转换成字符串;从数据库获取数据, 将字符串转为LONG数组 package com.winturn.utils.handler; import java.sql.Ca ...

  2. 如何下载到最新的版本的Oracle Database

    其实这不是一个很困难的事情,但是发现好多同学都不知道,其实只需直接访问Oracle的官网就可以找到,鉴于Oracle经常改到下载面也我这里直接粘贴下载地址 http://www.oracle.com/ ...

  3. js实现文件上传,删除效果

    效果图: 刚开始: 点击按钮"选择更多后",可以添加很多选择文件: 点击按钮"删除"后: 实现代码: <!DOCTYPE html><html ...

  4. 删除svn密码方法

    很多时候使用svn,我们需要切换svn账号,但是由于之前的账号已经选择了记住密码,那么我们应该如何删除svn密码来切换新的svn账号呢? 其实很简单,svn账号密码信息保存在电脑某一文件中,我们只要删 ...

  5. C语言基础程序设计

    1 概论 程序(指令和数据的集合)在运行时,首先会被加载到内存(此时称为进程),然后由CPU通过控制器的译码从内存中读取指令,并按照指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再 ...

  6. Codeforces 553C Love Triangles(图论)

    Solution: 比较好的图论的题. 要做这一题,首先要分析love关系和hate关系中,love关系具有传递性.更关键的一点,hate关系是不能成奇环的. 看到没有奇环很自然想到二分图的特性. 那 ...

  7. MySQL配置文件路径及‘The total number of locks exceeds the lock table size’问题

    在删除mysql中的数据时,遇到报错: ERROR 1206 (HY000): The total number of locks exceeds the lock table size 查了查,发现 ...

  8. mysql进阶1

    在我们用php处理数据的时候总会遇到些比较麻烦的事情,比如:两个二维数组,一个装的是文章分类表内容,一个装的是文章列表,有关联字段,完全等值,要求在列表文章的时候同时能在标题的前面显示栏目名称,此时循 ...

  9. Android ART简介

    一.    Android ART简介 Android DEX/ODEX/OAT文件

  10. 2016022607 - redis配置文件

    在Redis有配置文件(redis.conf)可在Redis的根目录下找到.可以通过Redis的CONFIG命令设置所有Redis的配置. Redis的CONFIG命令的基本语法如下所示: redis ...