2011-12-15 16 views
8

Soy muy nuevo con C#.Obtenga la ruta de cada ventana del explorador con C#

Estaba aburrido de que a veces cierro una ventana y después de unos segundos noto que necesito esa ventana otra vez, y me resulta muy frustrante reabrir Windows Explorer y navegar a esa ruta específica.

Así que quiero crear una pequeña aplicación que me permita almacenar una lista de las últimas ventanas cerradas. Y con un atajo de teclado restaurar una por una las últimas ventanas cerradas (al igual que hago con los navegadores como Firefox) y con otras claves mostrar una lista con las últimas n ventanas.

No sé cómo obtener las rutas de las ventanas y es importante que el programa también se obtenga cuando las rutas cambian (cuando el usuario navega).

Gracias por la ayuda.


Voy a publicar el enlace una vez que la aplicación se termine.

+0

¿Ha probado nada? –

Respuesta

12

Tomado de here:

SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows(); 

string filename; 

foreach (SHDocVw.InternetExplorer ie in shellWindows) 
{ 
    filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower(); 

    if (filename.Equals("explorer")) 
    { 
     // Save the location off to your application 
     Console.WriteLine("Explorer location : {0}", ie.LocationURL); 

     // Setup a trigger for when the user navigates 
     ie.NavigateComplete2 += new SHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(handlerMethod); 
    } 
} 
+0

Gracias Garret. Aparece un error que dice que no se puede encontrar el espacio de nombres SHDocVw. – Memochipan

+1

Agregue una referencia al objeto COM Controles de Internet Explorer. Vea aquí para más información: http://omegacoder.com/?p=63. –

+0

Ok. Pude importar el objeto COM Control de Internet Explorer. Ahora me sale este error: no se puede incrustar el tipo de interoperabilidad 'SHDocVw.ShellWindowsClass'. Usa la interfaz de su lugar. ¿De qué está hablando? – Memochipan

Cuestiones relacionadas