averiguar el "PID" de un proceso lanzado desde vb

fmartinv
02 de Agosto del 2005
Si Lanzo un aplicacion por ejemplo un CrystalReport desde vb, este cogera un Identificador de proceso "PID", Existe algun API que me diga que PID se le ha asignado ,

Mi problema es que tengo q presentar varios Crystal Reports uno detras de otro, de forma q cuando el usuario cierre uno yo pueda presentar el siguiente.
Si se que PID se le ha asignado podria hacer un bucle que de "no hacer hacer nada" hasta q el proceso fuera matado (osea que el usuario cerrara el crystalreport ) y aconinuacion lanzaria el siguiente.
Analogamente Si lanzo un docomento de word, y me interesa parar el programa hasta q el usuario cierre ese documento. sigo teniendo el mismo problema

Si me podeis ayudar os lo agradeceria un mucho


basura_10
02 de Agosto del 2005
es simple utiliza una shell, adjunto ejemplo.
Este ejemplo imprime un docto creado con pdf.

Private Sub Form_Load()
Dim gsNombreArchivoPDF As String
Dim gsExtArchivoPDF As String

Dim iIDAcrobat
Dim sNombreArchivo As String
Dim sRuta As String

gsPathAcrobat = "C:Archivos de ProgramaAdobeAcrobat 5.0ReaderAcroRd32.exe"
gsNombreArchivoPDF = "C:cartola"
gsExtArchivoPDF = ".pdf"


sNombreArchivo = Trim(gsNombreArchivoPDF & gsExtArchivoPDF)

'Ruta que se utilizará en la llamada al Acrobat
sRuta = gsPathAcrobat & " /s /h /t " & sNombreArchivo _
& " '" & Printer.DeviceName & "'" _
& " '" & Printer.DriverName & "'" _
& " '" & Printer.Port & "'"

'Cambia la comilla simple por comilla doble
sRuta = Replace(sRuta, "'", Chr(34))

' Ejecuta Adobe.
iIDAcrobat = Shell(sRuta, 6) <===== LA SHELL TE ENTREGA EL PID DEL PROCESO

End Sub

para imprimir en otro formato, por ejemplo notepad

private form_load()
dim pid as integer

pid = shell("C:notepad.exe", 6)

end sub


esto solo te sirve para poder identificar el numero de proceso, si kieres saber el nombre del proceso y como matarlo (kill process) enviame un correo solicitando esta aplicacion.