免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6333 | 回复: 4
打印 上一主题 下一主题

请教如何判断popen()运行的外部程序已终止 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-17 13:53 |只看该作者 |倒序浏览
我写了个GUI小程序,需要用popen()运行一个外部GUI程序,需要在这个程序结束的时候备份这个程序的数据。
现在用popen() 和atexit.register() 方法只有我的整个IDE推出后,这个备份才运行,请问有没有什么好方法。

另外,我需要这个程序一次只运行一个,现在处理的方法是,程序开始建立一个temp文件,程序结束删除这个temp文件,用判断文件是否存在的方式判断是否已运行一个程序,但是如果程序非正常退出就不会删除这个temp文件,也就不能运行了。
有没有什么方法能够得到系统进程名称列表,我可以用进程列表来判断程序是否已经运行。
谢谢。

论坛徽章:
0
2 [报告]
发表于 2006-04-17 14:36 |只看该作者
你是用什么实在GUI的?是wxPython吗?

记得wxPython有自己实现单个实例的方法

论坛徽章:
0
3 [报告]
发表于 2006-04-19 14:03 |只看该作者
我就用wxpython

论坛徽章:
0
4 [报告]
发表于 2006-04-19 20:30 |只看该作者
http://wiki.wxpython.org/index.cgi/OneInstanceRunning

windows下查看进程可以使用python win32 extension

  1. import win32pdh
  2. win32pdh.EnumObjects(None, None, win32pdh.PERF_DETAIL_WIZARD)
  3. junk, instances = win32pdh.EnumObjectItems(None, None,
  4.     'Process', win32pdh.PERF_DETAIL_WIZARD)
  5. instances = map((lambda s: string.lower(s)), instances)
  6. if instance in instances:
  7.     print 'running'
复制代码

论坛徽章:
0
5 [报告]
发表于 2006-04-22 10:35 |只看该作者
我试了一下,不用判断是否结束了,把备份语句放在popen()后面就可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP