注册 登录
编程论坛 VC++/MFC

OpenProcess咋不能打开进程(自己开的)啊,返回值尽然是000000

yfleee 发布于 2011-03-30 22:49, 950 次点击
///////////////////////////////////////////////////////////////
// 02TerminateProcess.cpp文件


#include "stdafx.h"
#include <windows.h>

#include<iostream>
using namespace std;
BOOL TerminateProcessFromId(DWORD dwId)
{
    BOOL bRet = FALSE;
    // 打开目标进程,取得进程句柄
    HANDLE hProcess = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwId);cout<<hProcess<<endl;
    if(hProcess != NULL)
    {printf(" 终止1! \n");
        // 终止进程
        bRet = ::TerminateProcess(hProcess, 0);
    }
    CloseHandle(hProcess);
    return bRet;
}

int main(int argc, char* argv[])
{
    DWORD dwId;
    printf(" 请输入您要终止的进程的ID号: \n");
    scanf("%u", &dwId);
    if(TerminateProcessFromId(dwId))
    {
        printf(" 终止进程成功! \n");
    }
    else
    {
        printf(" 终止进程失败! \n");
    }
    system("PAUSE");
    return 0;
}




2 回复
#2
yuccn2011-03-30 23:44
首先要保证你那样输入的PID是存在的

而且确保你的权限是足够的。

权限不够吧,提升下权限试试
可以::GetLastError()来看看错误代码
#3
yfleee2011-03-31 10:25
回复 2楼 yuccn
返回值是6,我查了是句柄无效!!!
1