Necesito enumerar todos los identificadores abiertos en el proceso actual. Como no pude encontrar ninguna función como "EnumHandles", estaba pensando en hacer un ciclo de 0 a 1000. La pregunta es ¿cómo puedo recuperar el nombre de cada identificador? Estoy usando C++ y el sistema operativo es Win7 de 32 bits EDIT: El identificador del que necesito nombre es un Mutex. Al comparar el nombre del mutex, quiero obtener el identificador de mango que parecen haber encontrado la solución usando OpenMutex, pero no saben lo que pase el 3 de parámetro,Obtener el nombre de todos los identificadores en el proceso actual
Respuesta
Creo que usted tiene que utilizar el NTDLL.DLL. Que yo sepa, esto es lo que todas las herramientas que supervisan procesos, identificadores y otra información del sistema, deben usarse al final, bajo Windows. Lo usé en una pequeña herramienta de Win32, sin embargo, nunca tuve que enumerar los identificadores.
Compruebe aquí una buena introducción de esa biblioteca y relacionada con su pregunta. http://forum.sysinternals.com/howto-enumerate-handles_topic18892.html
También la función getObjectName en el primer puesto de http://forum.sysinternals.com/enumerate-opened-files_topic3577.html
de acceder a este tipo de información en Windows puede parecer mucho trabajo y se ve alarmante porque Microsoft no quiere que lo soporte, pero verá que cuando la API 'fácil' no le proporciona lo que necesita, debe excavar en NTDLL. Esto es lo que las herramientas como ProcessExplorer usan al final. No es tan difícil de usar: cargue la DLL, obtenga los punteros de la función correcta para completar las estructuras que usted declara con lo que encontrará en la red.
No soy un proceso de tutoría, su identificador está ubicado en el proceso actual – WePro2
Lo he explicado mal. La biblioteca NTDLL.DLL está destinada a obtener información sobre la información profunda del sistema (procesos, identificadores, etc.). Esta es una DLL que no está documentada por Microsoft pero puede encontrar documentación en los enlaces que brindé o en Google. Solo tiene que saber las estructuras y funciones para llamar en la DLL. – fury
Parece mucho trabajo solo para recuperar el nombre de los identificadores. Creo que OpenMutex podría ser la respuesta que estoy buscando, pero no estoy seguro si necesito pasar la ruta completa de mutex (\ Sessions \ 1 \ BaseNamedObjects \ somemutex) o solo algo de mutex en el 3er parámetro. He probado ambos, pero no he logrado – WePro2
- 1. ¿Cómo obtener el nombre actual del proceso en Linux?
- 2. jqGrid obtener todos los identificadores de
- 3. Obtener todos los identificadores de una colección
- 4. Obtener los identificadores de todos los objetos en una lista
- 5. obtener el nombre del proceso desde el proceso id (win32)
- 6. ¿Cómo obtener el ID de proceso actual?
- 7. ¿Obtiene el nombre del proceso actual (ejecutable) en Go?
- 8. ¿Los identificadores de proceso no son negativos en Linux?
- 9. ¿Cómo se enumeran los identificadores del proceso?
- 10. Obtener el nombre de todos los DataMembers en un DataContract
- 11. jQuery obtener todos los identificadores en la página
- 12. ¿Obtener el nombre de la clase actual?
- 13. Pausa de todos los hilos en el proceso actual en tiempo de ejecución
- 14. Buscar todos los hilos de un proceso dado proceso id
- 15. PHP Obtener el nombre del directorio actual
- 16. Obtener todos los procesos de la sesión activa actual
- 17. Obtener el nombre del método actual
- 18. ¿Cómo obtener el ID del proceso del nombre del proceso?
- 19. Obtención de los identificadores de archivo del proceso dado
- 20. ¿Cómo sudo el proceso actual?
- 21. Proceso por lotes todos los archivos en el directorio
- 22. Obtener el nombre del proceso de pid o manejar
- 23. Cómo obtener el nombre de host actual en Heroku
- 24. En Boost.Test, ¿cómo obtener el nombre de la prueba actual?
- 25. obtener el nombre de la función actual en javascript
- 26. ¿Cómo obtener el PID de un proceso dando el nombre del proceso en Mac OS X?
- 27. Proceso de ejecución en el usuario actual
- 28. Al escribir un paquete único destinado a ser utilizado como un comando, que es idiomático: nombre todos los identificadores como privados o nombre todos los identificadores como públicos.
- 29. Cómo obtener el nombre del proceso en C++
- 30. Obtener el nombre del archivo actual en Vim
¿Qué quiere decir con el "nombre de cada identificador"? Las manijas no tienen nombres. ¿Te refieres a la ID del identificador, a las clases de ventana o a los títulos de texto correspondientes? –
No todos los identificadores hacen referencia a archivos con nombres. ¿Has considerado mirar a Process Explorer? –
Ese enfoque no funcionará. ¿Qué tipo de mangos? – SLaks