Matar proceso

daniotero
26 de Noviembre del 2003
Hola de nuevo!
Necesito saber como puedo matar un proceso(outlook.exe) desde una aplicacion VB ya que se me queda abierto. Quizas sea fallo de mi codigo, por si acaso, aqui lo dejo:

Dim Lineatxt As String
Dim NumFact As String
Dim DirOrigen As String
Dim DirDestino As String
Dim NomFact As String
Dim NomPlant As String
Dim RutaAccesoDirtxt As String
Dim RutaAccesoArctxt As String
Dim RutaAccesoPlant As String
Dim Num_Lin As Integer
Dim wordApp As Object
Dim WordDoc As Object
Num_Lin = 0
NumFact = Command()
'NumFact = "EX377332"
Open "D:ImportaParam.ini" For Input As #1 'Abre el fichero del que tomo los datos
Do While Not EOF(1)
Num_Lin = Num_Lin + 1
Line Input #1, Lineatxt 'Lee la linea
Select Case Num_Lin
Case 2
DirOrigen = Lineatxt
Case 5
NomPlant = Lineatxt
Case 8
RutaAccesoDirtxt = Lineatxt
Case 11
DirDestino = Lineatxt
End Select
Loop
Close #1
'DirOrigen = "D:ImportaPlantillas"
'NomPlant = "Fact.doc"
'RutaAccesoDirtxt = "D:ImportaTXT"
'DirDestino = "D:ImportaFacImpor"
RutaAccesoPlant = DirOrigen + NomPlant
Set wordApp = CreateObject("Word.Application")
Set WordDoc = wordApp.Documents.Open(RutaAccesoPlant, , 1)
RutaAccesoArctxt = RutaAccesoDirtxt + NumFact + ".txt"
wordApp.Visible = True
Num_Lin = 0
Open RutaAccesoArctxt For Input As #1 'Abre el fichero del que tomo los datos
Do While Not EOF(1)
Num_Lin = Num_Lin + 1
Line Input #1, Lineatxt 'Lee la linea
Mid(Lineatxt, 1) = " " 'Sustituye el primer digito de identificador de linea
Mid(Lineatxt, 2) = " " 'Sustituye el segundo digito de identificador de linea
If (Num_Lin <> 1) Then wordApp.Selection.TypeText Text:=Lineatxt 'Copia la linea en el documento word
If (Not EOF(1)) And (Num_Lin <> 1) Then wordApp.Selection.TypeParagraph 'Introduce salto de linea
Loop
Close #1
NomFact = "Fact" + NumFact 'Crea el nombre de fichero
NomFact = NomFact + ".doc"
wordApp.ChangeFileOpenDirectory DirDestino
WordDoc.SaveAs NomFact
wordApp.Application.Run MacroName:="ConvertToPDFandEmail" 'Convierte el doc en pdf y lo adjunta al e_mail
wordApp.Windows(NomFact).Activate 'Activa la ventana del documento word
wordApp.ActiveDocument.Save 'Salva los cambios
wordApp.ActiveWindow.Close
Set WordDoc = Nothing
wordApp.Application.Quit
End

Un saludo

sdemingo
26 de Noviembre del 2003
Supongo que será en el código de la macro donde no se cierre el outlook

daniotero
26 de Noviembre del 2003
Yo tambien suponia eso, pero me da que es imposible modificar la macro de Acrobat. Muchas gracias por tu ayuda!

sdemingo
26 de Noviembre del 2003
Si, ya me he dado cuenta que es una de esas macros que vienen con el SDK de Acorbat.

Pues si en principio no creas ninguna instancia por código de outlook.exe, el código estaría bien. El problema tendrá que venir por otro sitio ajeno a ti.

Puedes mirar las funciones de la API de windows para acceder a los procesos del sistema e intentar eliminarlo así.

Suerte
sdemingo