Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++,打开进程的句柄_C++_Winapi_Handle - Fatal编程技术网

C++,打开进程的句柄

C++,打开进程的句柄,c++,winapi,handle,C++,Winapi,Handle,我正试图控制我的开放进程,这就是我得到的: #include "stdafx.h" #include <Psapi.h> using namespace std; BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int iCmdShow) { bo

我正试图控制我的开放进程,这就是我得到的:

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

using namespace std;

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int iCmdShow)
{
    bool _result;
    DWORD *pProcessIds = new DWORD[1000];
    DWORD cb;
    DWORD *pBytesReturned= new DWORD[1000];
    _result =  EnumProcesses(pProcessIds, 1000,pBytesReturned);

    HANDLE _Proccess = new HANDLE;

    for (int i = 0;i<=1000; i++)
    {
        _Proccess =   OpenProcess(READ_CONTROL,  false, *pProcessIds);
        DWORD error;
        error = GetLastError(); 
        CloseHandle(_Proccess);
        pProcessIds ++;
    }
    return 0;
}
1-我不断地得到错误87

2-_进程也没有分配任何内容。在每个iTertation上,它都被设置为0x00000000

3-EnumProcess工作正常,因为PBytesReturn返回一个数字


有什么想法吗?

确保以管理员身份运行


对于int i=0;ifor int i=0;IEnumProcessProcessId,1000,PB返回;1000太小了。您需要1000*sizeofDWORD,因为第二个参数定义为pProcessIds数组的大小,以字节为单位。DWORD*PBytesReturn=new DWORD[1000];这也是错误的。您不需要创建数组。这是指向DWORD的单个指针。读取此DWORD以获取返回的字节数。创建一个DWORD变量并使用&获取其地址。将其作为第三个参数传递。感谢各位提供的信息。显然,它只是出于某种原因停止了出错。