| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 601 人关注过本帖
标题:pid 在任务管理器看不到了 openprocess 为什么还返回非0?
取消只看楼主 加入收藏
czb27111111
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-2-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
pid 在任务管理器看不到了 openprocess 为什么还返回非0?
R T
搜索更多相关主题的帖子: 任务管理器 
2015-08-01 22:10
czb27111111
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-2-10
收藏
得分:0 
有一个数组,储存着SHELL函数的返回值。
SHELL运行一个程序,运行完后会自动退出。
用一个TIMER检测程序是否退出了
我判断OPENPROCESS(process_all_access,false,数组中的一个数)是否为零来判断程序是不是退出了
可当程序运行完后openprocess还是返回非零的数
2015-08-04 13:29
czb27111111
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-2-10
收藏
得分:0 
回复 2楼 wmf2014
用api刷新?
2015-08-04 13:34
czb27111111
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-2-10
收藏
得分:0 
回复 2楼 wmf2014
用API刷新?
2015-08-04 13:36
czb27111111
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-2-10
收藏
得分:0 
回复 9楼 lianyicq
谢谢,我用
程序代码:
    If TheProcesses(0) <> 0 Then
        Dim i As Long
        For i = UBound(TheProcesses) To 0 Step -1
            Dim a As Long
            a = OpenProcess(PROCESS_ALL_ACCESS, False, TheProcesses(i))
            If a = 0 Then
                Call DeleteFormArray(TheProcesses, i)
            Else
                Dim CreationTime As FileTime, ExitTime As FileTime, KernelTime As FileTime, UserTime As FileTime
                If GetProcessTimes(a, CreationTime, ExitTime, KernelTime, UserTime) = 0 Then
                    MsgBox GetLastError
                    Call DeleteFormArray(TheProcesses, i)
                Else
                    If ExitTime.dwHighDateTime <> 0 And ExitTime.dwLowDateTime <> 0 Then
                        Call DeleteFormArray(TheProcesses, i)
                    End If
                End If
            End If
            Call CloseHandle(a)
        Next i
    End If

解决了
2015-08-08 10:37
快速回复:pid 在任务管理器看不到了 openprocess 为什么还返回非0?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012334 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved