如何在进程列表中查找用createdispatch创建的进程?(NT4环境)

pp4u 2008-02-25 11:57:16
我用createdispatch("excel.application")创建一个excel进程时,有时会失败,进程列表中会存在一个excel.exe的进程.
用app.quit();app.DetachDispatch和app.ReleaseDispatch之后也没有效果,需要强制从进程列表中删掉。
但NT4只支持用psapi查询已有进程,我怎么才能知道进程列表中哪个excel.exe是这个出错程序创建的呢,(进程列表中有好多excel.exe)

说白了就是进程和用createdispatch创建的子进程之间有什么关系或特征呢

或者createdispatch失败时残留的进程和正常的进程有什么区别呢?

泣求!!!!
...全文
194 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pp4u 2008-02-29
  • 打赏
  • 举报
回复
进程外组件的退出是需要时间的,从数秒到数十秒都有可能,你正常释放一次,然后在任务管理器中多等会,看看excel.exe进程是否会消失,如果能自动消失,说明代码没有任何问题。

--------------------------------------------

如果单独执行程序的时候没有任何问题,在多个程序同时执行时,140次有1次(测试过)excel.exe进程残留

现在就是在解决为什么会有这一次!!!

多谢各位的帮助
pp4u 2008-02-29
  • 打赏
  • 举报
回复
CreateToolhelp32Snapshot在NT4环境不支持
wangk 2008-02-27
  • 打赏
  • 举报
回复
CreateToolhelp32Snapshot配合Process32First函数可以实现枚举父进程PID
wangk 2008-02-26
  • 打赏
  • 举报
回复
你先用其他工具看看excel.exe的父进程和命令行参数等。实在找不出关系就用创建时间进行判定。
jameshooo 2008-02-26
  • 打赏
  • 举报
回复
进程外组件的退出是需要时间的,从数秒到数十秒都有可能,你正常释放一次,然后在任务管理器中多等会,看看excel.exe进程是否会消失,如果能自动消失,说明代码没有任何问题。
pp4u 2008-02-26
  • 打赏
  • 举报
回复
to jameshooo : 没有啊,我还调用ReleaseDispatch两次呢。
to wangk : 实际上是我开发的机器太慢造成的,NT4下进程用什么函数看父进程,还请高人指点下,我在PSAPI.DLL下没找到啊。
jameshooo 2008-02-26
  • 打赏
  • 举报
回复
代码中其它地方也使用了app了吗?看样子是ReleaseDispatch时引用计数没有到0。
shulei521 2008-02-26
  • 打赏
  • 举报
回复
软件破解群35780346
从事专业软件逆向 软解破解 精通汇编,精通静态 动态的调试工具,
供大家交流学习。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧