Estoy codificando una función en un programa donde los usuarios pueden editar documentos almacenados en una base de datos, guarda el documento en una carpeta temporal y luego utiliza Process.Start para iniciar el documento en la aplicación de edición, digamos Microsoft Word, por ejemplo.C# Process.Start, cómo evitar la reutilización de la aplicación existente?
Luego mi aplicación necesita esperar hasta que hayan cerrado el proceso llamado y reemplazar el documento en la base de datos con la copia recién editada en la carpeta temporal.
el siguiente código funciona muy bien siempre y cuando la llamada aplicación no se está ejecutando:
ProcessStartInfo pInfo = new ProcessStartInfo();
pInfo.FileName=TempFolder + Path.DirectorySeparatorChar + f.Name;
Process p = new Process();
p.StartInfo = pInfo;
p.Start();
//p is null at this point if called application was already running
//i.e. Microsoft Word is re-used instead of starting a fresh copy
p.WaitForInputIdle();
p.WaitForExit();
¿Hay una manera de fuerza iniciar un proceso totalmente nuevo o cualquiera puede pensar en otra forma de manejar esta. Realmente no quiero que los usuarios puedan hacer nada más en mi aplicación hasta que hayan cerrado el proceso llamado porque necesito saber si editaron ese archivo o no en ese momento, no después, cuando todo tipo de otros problemas podrían surgir.
Las etiquetas editadas son más generalizadas, por lo que la pregunta se ve en más feeds. –