C sharp - Detectar Programa o id sabiendo directorio y archivo abierto

   
Vista:

Detectar Programa o id sabiendo directorio y archivo abierto

Publicado por Juan (1 intervención) el 21/04/2016 22:22:50
Hola
Estoy desarrollando un programa en c# con visual studio que monitorea un directorio.
El nombre de archivo y el directorio donde se encuentra se guarda en una base de datos de manera que cuando se quiere abrir el archivo en el evento clic del button pongo:

Process.Start("C:\\Data\\Doc1.doc");
y automaticamente se abre el word con el archivo seleccionado.
El usuario solo puede guardar, en el momento que hacen guardar como y lo guarda en un directorio distinto o con otro nombre es detectado por FileSystemWatcher que me devuelve el nombre del archivo nuevo y directorio nuevo.
Una vez conocido este archivo se procede a terminarlo y cerrarlo con CloseMainWindow()
para luego mover el archivo fuera del directorio monitoreado.

El problema es que:
Si abro el archivo como Process.Start("C:\\Data\\Doc1.doc"); no me crea un proceso nuevo
Si lo abro añadiendo al formulario en tiempo de diseño un componente process le tengo que decir el nombre del ejecutable que no lo sé porque puede ser cualquier programa y cualquier archivo.
Si quiero detener el proceso las formas que he visto son:

System.Diagnostics.Process[] myProcesses;
myProcesses =
System.Diagnostics.Process.GetProcessesByName(nombre);

Para lo que necesito saber el nombre del ejecutable que no lo sé.

Process localById = Process.GetProcessById(1234);

Para lo que tengo que saber el id del proceso que no lo se

Mi pregunta es:
Como puedo abrir un archivo con su programa con
Process.Start("C:\\Data\\Doc1.doc");
y que me cree un proceso de manera que puedo guardar el nombre del programa que lo ha abierto y su Id
porque actualmente me devuelve null

Otra opción seria:
Una vez que FileSystemWatcher me devuelve el nombre y el directorio del archivo cambiado
Con el camino y nombre de archivo ¿como podría obtener su Id y programa que lo ha abierto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder