您好、欢迎来到现金彩票网!
当前位置:棋牌游戏娱乐平台 > 外壳进程 >

Windows 2000系统编程——进程的创建

发布时间:2019-05-31 09:16 来源:未知 编辑:admin

  :指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。

  虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。简单地传送作为第一个参数的命令行,还需要决定如何显示程序(该程序也许会忽视它)的第二个参数。通常,将其设置为SW_SHOW,也可尝试SW_MINIMIZED或SW_MAXIMIZED。WinExec不允许用CreateProcess获得的所有选项,而它的确简单。

  lpOperation:一个空结束的字符串地址,此字符串指定要执行的操作。下面的操作字符串是有效的:

  此函数打开由参数lpFile指定的文件,此文件可以是一个可执行文件或文档文件,也可是一个文件夹。

  此函数打印由参数lpFile指定的文件,此文件应是一个文档文件,假如此文件是一个可执行文件,则打开此文件。

  lpFile:一个空结束的字符串地址,此字符串指定要打开或打印的文件或者是要打开或搜索的文件夹。

  lpParameters:假如参数lpFile指定一个可执行文件,lpParameters则是一个空结束的字符串地址,此字符串指定要传递给应用程序的参数。假如lpFile指定一个文档文件,lpParameters应为空。

  nShowCmd:假如lpFile指定一个可执行文件,nShowCmd表明应用程序打开时如何显示。假如lpFile指定一个文档文件,nShowCmd应为空。

  说明:可以用此函数打开或搜索一个外壳文件夹。打开文件夹可用下面任何一种形式:

  ShellExecute命令虽已过时但易于得到。该命令向命令解释程序提出打开、浏览或打印文档或文件夹的请求,虽然可以用ShellExecute运行程序,但通常只发送文档名,而命令解释程序则决定要运行那个程序。另外在打开目录文件夹时,ShellExecute命令非常有用。

  下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。下面程序使用WinExec,并明确指定使用记事本程序。然后,使用ShellExecute,打开文本文件。

  lpApplicationName:指向一个以空结尾的串,他指定了要执行的模块

  lpCommandLine:指向一个以空结尾的串,该串定义了要执行的命令行。

  lpCurrentDirectory:指向一个以空结尾的串,该串定义了子进程的当前驱动器和当前目录。

  lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。

  在上述参数中,参数lpStartupInfo是STARTUPINFO结构。可以用来设置控台的标题,新窗口的的初始大小和位置,及重定向标准输入和输出。新程序通常可以忽略多数这些数据项,如果选择那样做的话。可以规定该结构体中的标志,已表明要设置的数据段。有时,不想设置任何信息,也必须传递一个有效的指针给空结构(确定设置大小到cb,及设置dwFlags成员为0)。参数lpProcessInformation返回进程和线程句柄,还包括进程和线程ID。这些句柄拥有在参数lpProcessAttributes和lpThreadAttributes中规定的访问。

  要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入STARTUPINFO结构,但无论如何必须提供它。其返回值是布尔型的,而真正感兴趣的返回值发生于作为参数传送的结构中(PROCESS_INFORMATION)。CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。可以将ID发送到其它进程,或使用句柄来控制新进程。

  给定进程句柄,就可以用相关命令来控制进程。下面我们讨论进程结束的确定,进程结束的确定有以下几种方法:

  命令GetExitCodeProcess既能返回STILL_ACTIVE,也能返回进程退出值(如果进程结束时)返回值需要一个指针,其指向命令填充的变量。

  WaitForSingleObject的目的是要确定句柄是否处于发送信号的状态。当进程结束时,进程句柄发出信号。当调用WaitForSingleObject时,就规定进程句柄和超时值,如果超时为0,则该命令就立刻返回,且能够确定进程的状态。如果超时是常数INFINITE,则命令就不返回,直到目标进程退出为止。当然,还可以规定超时值,其导致该命令等待要结束的进程一段时间。如果进程在超时届满前结束,该命令就返回,并指出句柄在发射信号状态。否则,就返回一个负值。不管句柄在何种状态,WaitForSingleObject将成功返回,没有错误发生。要确定进程的状态,就必须比较返回值为WAIT_OBJECT_0(已发信号的)和WAIT_TIMEOUT(未发信号的)。真正的错误返回值为WAIT_FAILED。另外可能的返回值是WAIT_ABANDONED,是不会看到何时处理进程。要等待一个进程,就必须带有SYNCHRONIZE特权的打开局柄。

  这里要注意,进程ID与进程句柄不同。不能简单地在进程之间传送句柄,这意味着除非有句柄,否则不能从外部进程直接操纵一个进程。不过OpenProcess命令将允许任何程序(有足够的安全特权)将进程标示符(可以用来于其它进程通信)变换为进程句柄。通过调用GetCurrentProcessId,还可以了解当前进程标示符。如果要想与其他无关的进程共享,以使能够打开进程句柄,这是非常有用的。但调用OpenProcess时,可以请求对进程的访问。对每种进程的访问,也许有或也许没有访问要打开进程的安全性,于是试图请求是仅仅需要的。例如,如果要了解进程的返回代码,就需要PROCESS_QUERY_INFORMATION的访问。要终止进程,就必须有PROCESS_TERMINATE的访问。

  下面通过一个例子来说名CreateProcess和相关命令的使用。下面程序是两个简单的控制台应用程序,第一个程序(MASTER)运行第二个程序(SLAVE),并进入睡眠。SLAVE程序从命令行读取源程序的进程ID(PID),并等待MASTER程序终止。这些程序说明了以下几个重要技术:

  通过本文介绍,读者应能掌握Windows 2000进程的创建,了解Windows 2000进程的控制。

  1《新编WINDOWS API参考大全》朱友芹主编…………电子工业出版社,2000。

  --摘自《Windows操作系统原理》一书 作为一个实际应用中的操作系统,Windows2000/XP没有单纯地使用某一种体系结构,它的设计融合了分层操作系统和客户/服务器(微内核)操作系统的特点。 ...博文来自:xujianlins blog

  默认情况下,一个线M的内存空间而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。你也可以通...博文来自:

  1、进程控制块=进程描述符(PCB)进程状态(4/5种):就绪(初始化),运行,挂起(=等待),停止PBC成员:1、进程id2、进程状态3、进程切换需要保存和恢复的CPU寄存器4、描述虚拟地址空间信息...博文来自:

  windows进程创建流程windows系统提供给用户的创建函数接口名称为CreateProcess(),下面我们通过分析系统中的这个函数的具体实现过程来阐述系统是如何从无到有将一个新进程带入到操作系...博文来自:

  本模块内容本模块含有一张介绍Microsoft®Windows2000®操作系统上的默认用户权限指派的表,并提供一张模块Windows2000安全配置中建议的更改列表。返回页首目标使用本模块可以实现:...博文来自:

  第1章纵览Windows2000毫不隐瞒地说,我是一个科幻迷。但是,我认为现实中的科幻描述很荒谬可笑。虽然我能接受存在生物圈和星系帝国的事实,甚至可以接受超光速的星际飞行器,但是我不能接受的...博文来自:

  本书用专业的语言详细地讲解了Windows 2000系统编程的基本概念、技术及最新的相关内容。通过实例研究,进一步向读者讲述了Windows 2000的多线程操作、同步、进程间通信、安全性、虚拟存储管理及连网操作。使读者能够从实践中掌握W...

  Windows是个人计算机上最流行的操作系统,在国内外拥有众多家庭和商务用户,因此Windows系统编程可以说是程序员的基础必修课。各高校许多专业都开设了相关的课程。本书结合大量的例子,介绍Windows系统编程的经典技术,并完整地介绍几...

  要将Sysprep用作磁盘复制过程的一部分,必须满足下列需求:主计算机和目标计算机必须具有兼容的硬件抽象层(HAL),也即,每台计算机上支持的HAL必须属于同一通用系列。例如,高级配置和电源接口(AC...博文来自:

  从NT6.0开始,微软为了提高安全防护增加了非常多的新机制,其中对普通用户层开发人员影响最大的就是”用户账户控制系统(UserAccountControl,UAC)”如果想让自己的程序默认以指定权限运...博文来自:

  socket进程通信与网络通信使用的是统一套接口,只是地址结构与某些参数不同。一。创建socket服务端的流程如下:(1)创建socket,类型为AF_LOCAL或AF_UNIX,表示用于进程通信:[...博文来自:

  最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行):smss.exeSessionManagercsrss.exe子系统服务器进程winlogon.exe管理用...博文来自:

  在局域网使用中,我们常常会发现系统中开放了一些莫名其妙的端口,这就给系统的安全带来了一些隐患。为了让端口的使用尽在掌握之中,一些朋友就会使用第三方工具来进行检查出使用端口的特定程序究竟是谁,但实际上我...博文来自:

  内核内核是操作系统的核心,是指管理和分配系统资源的核心软件。内核的职责①进程调度:linux属于抢占式多任务操作系统,多个进程可以同时存在于内存当中,但是每次只能有一个进程获得对cpu的使用权。内核通...博文来自:

  如果一个程序员从来没有在Linux、Unix下开发过程序,一直在Windows下面开发程序,同样是工作10年,大部分情况下与在Linux、unix下面开发10年的程序员水......博文来自:

  创建进程1进程和线CreateProcess函数4实例3创建进程3.1进程和线程进程通常被定义为一个存在运行的程序的实例。进程是一个正在运行的程序,它拥有自己的虚拟地址空间,拥...博文来自:

  作者:新浪微博@孙雨润新浪博客CSDN博客日期:2012年11月4日博文来自:

  今天课上做了关于进程创建与控制的实验,简单记录下来:实验题目①掌握Windows进程的创建和销毁API的调用方法;编程代码,在程序中创建和销毁一个Word进程;②能够挂起和激活被创建进程的主线程;③通...博文来自:

  Windows系统编程之进程间通信Windows 的IPC(进程间通信)机制主要是异步管道和命名管道。(至于其他的IPC方式,例如内存映射、邮槽等这里就不介绍了)管道(pipe)是用于进程间通信的共享...博文来自:

  1,根据进程名终止这种方法是通过winxp系统下的taskkill命令来实现的,在使用该方法之前,首先得打开任务管理器,找到你想终止的进程,然后在运行对话框中执行cmd,再在DOS命令符中执行...博文来自:

  Windows程序设计:进程进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,在Windows编程环境下,主要由两大元素组成:•一个是操作系统用来管理进程的内核对象。操作系统使用内核对象...博文来自:

  Python的os模块封装了常⻅的系统调⽤,其中就包括fork,可以在Python程序中轻松创建⼦进程:  程序执⾏到os.fork()时,操作系统会创建⼀个新的进程(⼦进程),然后复制⽗进程的所...博文来自:

  1、进程是资源和分配的基本单位,而进程内核对象就是与进程相关联的一个数据结构。操作系统内核通过它管理进程,即进程控制块(PCB)。进程一般被定义为一个正在运行的程序的一个实例,它由两部分组成:1)内核...博文来自:

  前两篇博客演示了广播式的websocket 推送。 广播式有自己的应用场景,但是广播式不能解决我门一个常见的场景,即消息由谁发送、由谁接收的问题。本例中演示了一个简单的聊天室程序。例子中只有两个用户...博文来自:

  4、图纸统计工具 软件介绍:该工具可以统计已打开AutoCAD图纸模型空间中符合预订要求的实体的数量,进而可用于统计各项目的数量。...博文来自:

  深度卷积网络   涉及问题: 1.每个图如何卷积:   (1)一个图如何变成几个?   (2)卷积核如何选择? 2.节点之间如何连接? 3.S2-C3如何进行分配? 4.16-...博文来自:

  tensorflow在ubuntu系统上按照官方文档安装起来相对容易,在centos上由于没有apt-get( yum)相对困难一些,本文会提到一些安装过程中遇到的一些坑及解放方案。...博文来自:

  以下流程是根据博客;并根据自己的实际经验而成,亲测可用。 以下路径多是绝对路径,需要...博文来自:

  mnist数据集介绍、读取、保存成图片 1、mnist数据集介绍: MNIST数据集是一个手写体数据集,简单说就是一堆这样东西  MNIST的官网地址是 MNIST; 通过阅读官网我们可以知...博文来自:

  一、信道的定义与调制信道的数学模型 1.信道的定义与分类         信道(Channel)是指以传输媒质为基础的信号通道。根据新到的定义,如果信道仅是指信号的传输媒质,这种信道称为狭义信道;如果...博文来自:

  前段时间看了一些关于LSTM方面的论文,一直准备记录一下学习过程的,因为其他事儿,一直拖到了现在,记忆又快模糊了。现在赶紧补上,本文的组织安排是这样的:先介绍rnn的BPTT所存在的问题,然后介绍最初...博文来自:

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自:

  command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行 sql仅可执行DDL、select、DML等...博文来自:

  Web前端面试指导(三十):JavaScript有几种类型的值?你能画一下他们的内存图吗?

  题目点评 数据类型是所有程序都会涉及到的,是计算机语言比较基础知识,这种问题被问到的可能性其实并不大,这样的题目只要花点时间把它记下来就好了,难易程度一般。  两大类: 栈:原始数据类型(Und...博文来自:

  4  软件设计   软件设计部分主要包括uboot移植、内核编译、系统移植、设备驱动编程、应用程序编程(QT编程、mysql数据库编程、控制系统编程)、各个模块的功能函数(部分是在windows下面的...博文来自:

  上一篇文章讲解了SNMP的基本架构,本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1、v2c、v3)进行区别! 四、SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Age...博文来自:

  一、概述最近在springboot项目引入thymeleaf模板时,使用非严格标签时,运行会报错。默认thymeleaf模板对html5标签是严格检查的。二、在项目中加NekoHTML库在Maven中...博文来自:

  cyuxiu:老师你好:你的算法注册机编写扫盲在学习,我现在迫切需要一个,算号器,机器码是:-4863 注册码是:cbCT-wgFv-9shq-tLVq 能给个源码吗,多谢了。

http://nanosong.com/waikejincheng/83.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有