- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Is there a way to get the parent process ID in Visual Fortran ?
Or should I have to mix language ?
Or should I have to mix language ?
- Etiquetas:
- Intel® Fortran Compiler
Enlace copiado
12 Respuestas
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Sure, you'd do it the same way as in C. What OS?
James
James
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Um, parent process ID? Windows does not even have concept of parent and child processes -- it's a Unixian thingo. One can spawn a "child" process via CreateProcess, but the relationship between "child" and "parent" is very weak and AFAIK there's no way to reach the "parent" process (unless the "parent" passes that information explicitly, e.g. using command line). What exactly you're trying to do?
Jugoslav
Jugoslav
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Jugoslav, the relationship may be "weak" but it is still there, and such information accessible.
James
James
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
James, I'm affraid you'll have to support that statement with a code sample :-).
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Ok, attached.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
OK, you win -- I didn't count on undocumented APIs :-).
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Actually it is the concept that is important! I illustrated one way to do it, there is another using documented APIs, it just requires more code.
James
James
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
GetCurrentProcessID in kernel32 returns this.
HTH,
Gerry T.
HTH,
Gerry T.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
No, GetCurrentProcessID returns the current process id as the name says, not that of the parent.
James
James
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
That's correct. However, if you snapshot the system via CreateToolHelp32Snapshot, then the snapshot and GetCurrentProcessID allow you to get the process entry data for the current app and hence the parent process id. This is then passed with the snapshot to Process32First(Next) to reveal the name of the parent process as the last member of the PROCESSENTRY32 struct. This approach is preferable to use of internal functions of ntdll as advised in MSDN. Also, snapshots can reveal details on app modules (including loaded ocx's, dll's, and their versioning info) and the threads spawned by the app, wittingly or otherwise.
Ciao,
Gerry T.
Ciao,
Gerry T.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Gerry, yes, that approach is fine in practice although it would be quite a bit more verbose than my example, which was intended to demonstrate a concept. Note that I also mentioned there were more official interfaces available, but didn't have time to whip up an example based on that approach just to show that it was possible.
Cheers,
James
Cheers,
James
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Hi James
I found your demo to be highly instructive and I'm sorry if I came across as unappreciative. Snapshotting is more bother and besides it hasn't made into CVF's kernel32 yet.
Have you noticed that if you run it from the ide, the parent is the ide; if you double click the .exe, the parent is Explorer; and if you shell it, the parent is the sheller. Ditto for the snapshot approach. I hope my pc hasn't been invaded by Raelians, :-).
Ciao,
Gerry T.
I found your demo to be highly instructive and I'm sorry if I came across as unappreciative. Snapshotting is more bother and besides it hasn't made into CVF's kernel32 yet.
Have you noticed that if you run it from the ide, the parent is the ide; if you double click the .exe, the parent is Explorer; and if you shell it, the parent is the sheller. Ditto for the snapshot approach. I hope my pc hasn't been invaded by Raelians, :-).
Ciao,
Gerry T.
Responder
Opciones de temas
- Suscribirse a un feed RSS
- Marcar tema como nuevo
- Marcar tema como leído
- Flotar este Tema para el usuario actual
- Favorito
- Suscribir
- Página de impresión sencilla