2010-07-03 17 views

Respuesta

12

No hay una función API que lo haga directamente, sin embargo, puede combinar algunas llamadas API para hacer esto. Por supuesto, su programa deberá cumplir con cualquier ACL que se aplique al proceso que le interese examinar.

En primer lugar, dado el ID del proceso, deberá abrir un identificador para el proceso. Puede usar OpenProcess para eso, solicitando el derecho de acceso PROCESS_QUERY_INFORMATION.

Una vez que tenga ese asa, puede llamar al OpenProcessToken, solicitando el derecho de acceso TOKEN_QUERY.

Finalmente, puede llamar al GetTokenInformation, solicitando la clase de información TokenUser, que le proporcionará la cuenta de usuario del token. Esta información se le proporciona en forma de SID. Para convertir el SID al nombre real de la cuenta, puede llamar al LookupAccountSid.

No olvide llamar al CloseHandle tanto en el controlador del proceso como en el del token una vez que haya terminado con ellos.

Cuestiones relacionadas