为了便于控制通过脚本运行的程序,可以使用win32process模块中的CreateProcess()函数创建一个运行相应程序的进程。其函数原型如下。
CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles , dwCreationFlags , newEnvironment , currentDirectory , startupinfo )

其参数含义如下。

 appName    可执行文件名。
 commandLine   命令行参数。
 processAttributes  进程安全属性,如果为None则为默认的安全属性。
 threadAttributes  线程安全属性,如果为None则为默认的安全属性。
 bInheritHandles   继承标志。
 dwCreationFlags  创建标志。
 newEnvironment  创建进程的环境变量。
 currentDirectory  进程的当前目录。
 startupinfo    创建进程的属性。

以下代码是使用win32process.CreateProcess函数运行记事本程序。
>>>  import win32process
>>> win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None ,win32process.STARTUPINFO())
(<PyHANDLE:584>, <PyHANDLE:600>, 280, 3076) # 函数返回进程句柄、线程句柄、进程ID以及线程ID

有了已创建进程的句柄就可以使用win32process.TerminateProcess函数结束进程,或者使用win32event.WaitForSingleObject等待创建的线程结束。其函数原型如下。
TerminateProcess(handle, exitCode)
WaitForSingleObject(handle, milliseconds )

对于TerminateProcess,其参数含义如下。

 handle    为要操作的进程句柄。
 exitCode   进程退出代码。

对于WaitForSingleObject,其参数含义如下。

 handle    为要操作的进程句柄。
 milliseconds   等待的时间,如果为-1则一直等待。

以下代码用于创建进程,然后对创建的进程进行相应的操作。
>>> import win32process
# 打开记事本程序,获得其句柄
>>> handle = win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None ,win32process.STARTUPINFO())
# 使用TerminateProcess函数终止记事本程序
>>> win32process.TerminateProcess(handle[0],0)
# 导入win32event模块
>>> import win32event
# 创建进程获得句柄
>>> handle = win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None ,win32process.STARTUPINFO())
# 等待进程结束
>>> win32event.WaitForSingleObject(handle[0], -1)
0  # 进程结束的返回值

转载于:https://www.cnblogs.com/python2016/p/6526671.html

使用CreateProcess函数运行其他程序相关推荐

  1. Createprocess 函数运行出错的原因和解决办法

    CreateProcess函数用来创建一个进程,在参数中有一个就是执行的命令.这个值在createprocess函数内部是会被改变的,所以在传递参数的时候不允许传const类型常量. 如以下方法不允许 ...

  2. python运行程序-Python中四种运行其他程序的方式

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  3. Python系统调用——运行其他程序

    Python系统调用--运行其他程序 分类: python and cocos2d 2012-07-12 01:07 1748人阅读 评论(0) 收藏 举报 pythonwindowsimport脚本 ...

  4. python运行软件-Python中四种运行其他程序的方式

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  5. Python | 四种运行其他程序的黑科技

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码. 为了更好地控制运行的进程,可以使用win32pro ...

  6. python语言只有一种运行方式_Python中四种运行其他程序的方式

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  7. anaconda怎么运行python程序_Python中四种运行其他程序的方式,你知道吗?

    前言 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32p ...

  8. 使用c#调用API函数CreateProcess来运行外部程序

    c#调用CreateProcess函数比较麻烦的地方就是该函数的那些参数用c#的语法如何定义,CreateProcess函数位于Kernel32.dll中,原形如下: BOOL CreateProce ...

  9. yunyang tensorflow-yolov3 Intel Realsense D435 (并发)使用locals()函数批量配置摄像头运行识别程序并画框(代码记录)(代码示例)

    文章目录 20191126 20191202-1 20191202-2 20191126 # -*- encoding: utf-8 -*- """ @File : te ...

最新文章

  1. Dictionary (Of (TKey, TValue)) Class Example
  2. TSP问题中:如果有n个顶点,那么一共有多少种不同的环游
  3. 渐变显示渐变消失的BackgroundView
  4. python新特性赋值_变量与赋值_Python入门视频课程_Python视频-51CTO学院
  5. RedHat/Centos修改root密码
  6. Committee和Virtual Project Team的关系
  7. 计算机的科学原理是什么,人工智能的工作原理是什么?
  8. ECCV 2020 GigaVision挑战赛“行人和车辆检测”和“多目标追踪”冠军方案解读
  9. oracle 锁表 and 解锁
  10. 【poj3358】消因子+BSGS 或 消因子+欧拉定理 两种方法
  11. PaddleClas模型训练/评估:数据准备
  12. Excel(XLS,XLSX)和CSV相互转换 - C#简单实现方案
  13. >> 读书记录_2015~2020
  14. Ubuntu下安装Qt
  15. A goal-driven tree-structured neural model for math word problems论文阅读
  16. 梦三国2进去显示服务器未连接失败,梦三国手游无法登陆 无法登陆原因分析
  17. mysql级联更新优化_mysql级联更新
  18. JAVA 导出Excel 带有多个公式函数
  19. java我的世界_我的世界Java版
  20. 完全图与强连通图的那些坑

热门文章

  1. 类的静态成员函数和静态成员变量的使用
  2. asp.net如何抓取其他网站的内容
  3. Javascript 补位运算符
  4. 关于把字符串整数转换成整数的程序
  5. 《白帽子讲web安全》学习笔记 (3)
  6. 重磅!CVPR 2020 论文今起全面开放下载,含主会和workshop
  7. 计算机视觉新范式: Transformer
  8. ICLR 2020丨V4D:视频级别表示学习的四维卷积神经网络
  9. 60页论文综述深度学习优化方法,出自UIUC
  10. Datawhale 一周年,生日快乐!