标题: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-455981-1-1.html




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

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