2008-11-18 12 views
22

Partes de mi aplicación están en C++ bajo Windows. Necesito la identificación del proceso para el proceso actual. ¿Alguna idea?ms C++ get pid del proceso actual

+0

nice question actually –

+2

Lo leí por primera vez como "deshacerse del proceso actual" :) – Otherside

+0

@OtherSide me hizo buscar en el vocabulario – SerG

Respuesta

33

La función GetCurrentProcessId hará esto.

+3

yup, eso lo hizo; Qué oscura es esta información ... –

+0

También hay '_getpid()' - http://msdn.microsoft.com/en-us/library/t2y34y40%28v=vs.80%29.aspx – user93353

+1

'_getpid () 'solo llama a' GetCurrentProcessId() '. Solo hay una identificación de proceso, y la función de nivel más bajo que la devuelve es 'GetCurrentProcessId()'. –

5

Habiéndome acostumbrado a ver yardas y yardas de código para realizar tareas aparentemente sencillas, me sorprendió gratamente la franqueza de GetCurrentProcessId. Hoy temprano, lo vi funcionar en un depurador, cuando estaba siguiendo un código nuevo en una rutina DllMain que combina el ID del proceso con un GUID incrustado para crear un nombre único local para un mutex.

A continuación se muestra toda la rutina, las tres instrucciones de la máquina.

mov   eax,fs:[00000018] 
mov   eax,dword ptr [eax+20h] 
ret 

Por cierto, otras dos funciones simples felizmente API de Windows son GetLastError y SetLastError; de hecho, ambos son bastante similares a este.

+0

Me olvidé de mencionar en ese grupo "corto, dulce" es GetProcessHeap. –

Cuestiones relacionadas