windows系统中, 一个vc++进程, 被另外一个进程所创建, 那么这个被创建的进程能知道创建他的进程的进程id吗
时间: 2024-09-18 16:02:40 浏览: 25
在Windows系统中,如果一个VC++进程被另一个进程通过CreateProcess函数或者其变体创建,那么被创建的进程可以获取创建它的进程的信息,包括创建者PID(进程ID)。被创建的进程可以通过GetParentProcessId API或Win32 API中的CreateProcessWithInfoClass等方法来获得这个信息。
例如,在创建新进程的时候,你可以传递一个包含额外信息的结构体,如STARTUPINFO,在其中的cb和lpStartupInfo成员里,可以设置EXTENDED_STARTUPINFO结构,它包含了关于父进程的额外数据,包括PID。
```cpp
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
if (CreateProcess(NULL, ... , &si, NULL, FALSE, ..., &pi))
{
DWORD parentPid = GetWindowThreadProcessId(pi.hThread, &pid);
// 使用parentPid访问创建者进程
}
```
阅读全文