¿Cómo usar Shell32 dentro de una aplicación C #?

¿Qué debería incluir dentro de una aplicación C # para que Shell32 funcione?

Editar:

Mi aplicación no puede reconocer shell32. ¿Qué referencias o lib debo incluir? Lo que estoy tratando de hacer es:

Shell32.Shell shell = new Shell32.Shell(); 

Lo que obtengo como un error:

Error 1 No se pudo encontrar el tipo o el nombre del espacio de nombres ‘Shell32’ (¿falta una directiva using o una referencia de ensamblado?)

Simplemente Add Reference a Shell32.dll desde la carpeta Windows/system32 y Shell32.dll :

 Shell32.Shell shell = new Shell32.Shell(); shell.MinimizeAll(); 

tal vez esto puede ayudar:

  1. Haga clic derecho en el proyecto
  2. Haga clic en Add reference
  3. Haga clic en la pestaña .COM en Add reference diálogo de Add reference
  4. Seleccione Microsoft Shell Controls and Automation
  5. Click OK

su shell32 está listo para usar …

Sé que este hilo es antiguo, pero publico esto para cualquiera que tenga el mismo problema que yo. La solución anterior no se comstack en Windows 8

Shell32.Shell shell = new Shell32.Shell (); < = esto no funciona con Windows 8

Use el trabajo a continuación si desea que sus aplicaciones se ejecuten en Windows 8.

 using Shell32; private Shell32.Folder GetShell32Folder(string folderPath) { Type shellAppType = Type.GetTypeFromProgID("Shell.Application"); Object shell = Activator.CreateInstance(shellAppType); return (Shell32.Folder)shellAppType.InvokeMember("NameSpace", System.Reflection.BindingFlags.InvokeMethod, null, shell, new object[] { folderPath }); } 
  1. Haga clic derecho en su proyecto en el explorador de soluciones.
  2. Elija “Agregar referencia …” en el menú desplegable.
  3. Haga clic en la pestaña “Buscar”.
  4. Navegue al directorio C: \ Windows \ System32.
  5. Elija el archivo “shell32.dll”. y presione el botón “OK”.

Ahora tiene la referencia adecuada para usar Shell32.Shell.

Supongo que tiene problemas para reconocer cualquier llamada, por lo que le recomendaría este artículo general: http://www.codeproject.com/KB/shell/csdoesshell1.aspx

Más allá de eso, deberá proporcionar detalles de lo que no está funcionando para usted.

La clase que se muestra a continuación debería ayudar con algunos de los métodos de shell32 en C #. debe agregar la referencia de “Comando y automatización de Microsoft Shell” con la ventana de referencia al hacer clic en el proyecto.

 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MusicMuttPrototype { public class clsShellFileInfo { public Exception errorException; public enum FileDetailInfo { Name = 0, Year = 15, Size = 1, Track_Number = 19, Type = 2, Genre = 20, Date_Modified = 3, Duration = 27, Date_Created = 4, Bit_Rate = 28, Date_Accessed = 5, Protected = 23, Attributes = 6, Camera_Model = 24, Status = 7, Date_Picture_Taken = 25, Owner = 8, Dimensions = 26, Author = 9, Not_used = 27, Title = 10, Not_used_file = 28, Subject = 11, //Not_used = 29, Category = 12, Company = 30, Pages = 13, Description = 31, Comments = 14, File_Version = 32, Copyright = 15, Product_Name_Chapter = 33, //Scripting Quicktest Profess11ional Page 63 Artist = 16, Product_Version = 34, Album_Title = 17, Retrieves_the_info_tip_inf = -1 } public string getFileDetails(string fileFolder, string filePath, FileDetailInfo infotype) { string strReturnval = ""; try { Shell32.Shell fileshell = new Shell32.Shell(); Shell32.Folder fileshellfolder = fileshell.NameSpace(fileFolder); Shell32.FolderItem Item = fileshellfolder.ParseName(filePath); strReturnval = fileshellfolder.GetDetailsOf(Item, (int)infotype); } catch (Exception ex) { errorException = ex; } return strReturnval; } } } 

Si no necesita el conjunto completo de llamadas API, quizás sea mejor que cree una clase de código auxiliar COM. Vea cómo lo hizo Mike Ward, quien escribió Desk Drive.

http://mike-ward.net/2008/09/02/a-lean-method-for-invoking-com-in-c/ https://github.com/mike-ward/DeskDrive/blob/master/ src / DeskDrive / Shell32.cs

La referencia al shell32.dll real está en desuso. Obtendrá errores en .NET Framework 4+. El uso de un Framework .NET más antiguo solo para usar el shell32.dll limita las capacidades de su progtwig. En las aplicaciones para Windows 7+ y .NET Framework 4+, en su lugar siempre debe usar el componente .COM. Haz clic derecho en el proyecto. Haga clic en Agregar referencia. Haga clic en la pestaña .COM en Agregar diálogo de referencia. Seleccione Microso.ft Shell Controls and Automation. Haga clic en Aceptar