sábado, 20 de marzo de 2010

Instancia unica de aplicacion


Vamos a ver el caso de como controlar que se este ejecutando una única instancia de una determinada aplicación con Visual Studio 2005. En particular con VB.NET 2005.

Tenemos 3 caminos a seguir (no voy a poner todo el código aquí pero si los links adonde esta el ejemplo completo).

1.- Verificar cuantos procesos de nuestra aplicación están corriendo basandonos en el nombre de proceso.

If Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName).Length > 1 Then
messagebox.show("Ya existe una instancia de la aplicación")
Application.Exit()
End If

Con Process.GetProcessesByName traemos los procesos que corren con el nombre Process.GetCurrentProcess.ProcessName (el de nuestra aplicacion justamente), si trae mas de uno es porque ya hay otra corriendo y entonces salimos (Application.Exit()).

Se pueden ver ejemplos en los siguientes links:
http://www.freevbcode.com/ShowCode.Asp?ID=5333
http://www.elguille.info/colabora/puntonET/anibal_appPrevinstance.htm

El inconveniente de este procedimiento es que si se renombra el ejecutable pueden correr instancias simultaneas (cada nombre de ejecutable tendra un nombre de proceso distinto).

2.- Utilizando Mutex

Se intenta ganar acceso a un Mutex con nombre (la diea es que sea exclusivo de nuestra aplicación), si no se logra es porque alguien lo tomo antes, o sea.. ya existe una instancia de nmuestra aplicación.

http://www.freevbcode.com/ShowCode.Asp?ID=5845

3.- Simple pero efectivo:
En el proyecto de Visual Studio doble clic en My Proyect -> Pestaña Aplicación -> check en la opción "Convertir Aplicación de instancia única"

http://www.canalvisualbasic.net/foro/visual-basic-net/instancia-unica-de-aplicacion-12358/

Yo me quedo con la 3. Como diría un amigo: "rústico pero efectivo" :)

lunes, 8 de marzo de 2010

No se puede iniciar microsoft Office Outlook. No se puede abrir la ventana de Outlook. - Outlook 2007

De un dia para el otro y sin previo aviso te aparece una ventana con el siguiente tecto al querer abrir Outlook 2007:

"No se puede iniciar Microsoft Office Outlook. No se puede abrir la ventana de Outlook."

Una primera busqueda en Google nos lleva a probar las distintas opciones que vemos aqui:

http://social.technet.microsoft.com/Forums/es-ES/officees/thread/8e274ba5-ee65-4f93-a57a-18f2768fb466

Donde recomiendan por ejemplo el uso de scanpst.exe que encontramos en la carpeta de instalación de Office para reparar los archivos PST. Si bien es la primera opción que recomendaría y me ha funcionado varias veces fue la primer opción que probé en este caso sin resultados satisfactorios.

Otra opción paara probar es la que encontramos aqui:

http://www.ingenierovengador.com/index.php/2009/07/no-se-puede-iniciar-outlook-no-se-puede-abrir-la-ventana-de-outlook/

La cual probé y funcionó de maravillas.

El articulo de referencia nos invita a probar:

Inicio -> Ejecutar -> Outlook.exe /resetnavpane

10 puntos... muchas gracias al Ingeniero vengador.