Frage

Ich bin nicht sehr gut mit P / Invoke. Kann mir jemand sagen, wie die folgende shell32.dll Funktion in .NET zu erklären und benutzen?

http://msdn.microsoft. com / en-us / library / bb762230% 28VS.85% 29.aspx :

HRESULT SHMultiFileProperties(      
    IDataObject *pdtobj,
    DWORD dwFlags
);

Es ist der Windows-Shell Eigenschaften-Dialog für mehrere Dateisystemobjekte zur Anzeige.

ich schon herausgefunden, wie SHObjectProperties für eine Datei zu verwenden oder einen Ordner:

[DllImport("shell32.dll", SetLastError = true)]
static extern bool SHObjectProperties(uint hwnd, uint shopObjectType, [MarshalAs(UnmanagedType.LPWStr)] string pszObjectName, [MarshalAs(UnmanagedType.LPWStr)] string pszPropertyPage);

public static void ShowDialog(Form parent, FileSystemInfo selected)
{
    SHObjectProperties((uint)parent.Handle, (uint)ObjectType.File, selected.FullName, null));
}

enum ObjectType
{
    Printer = 0x01,
    File = 0x02,
    VoumeGuid = 0x04,
}

Kann mir jemand helfen?

War es hilfreich?

Lösung

Es gibt eine IDataObject Schnittstelle und eine Datenobjekt Klasse in .NET Framework .

[DllImport("shell32.dll", SetLastError = true)]
static extern int SHMultiFileProperties(IDataObject pdtobj, int flags);

public static void Foo()
{
    var pdtobj = new DataObject();

    pdtobj.SetFileDropList(new StringCollection { @"C:\Users", @"C:\Windows" });

    if (SHMultiFileProperties(pdtobj, 0) != 0 /*S_OK*/)
    {
        throw new Win32Exception();
    }
}

EDIT:. Ich habe gerade kompiliert und getestet diese und es funktioniert (erscheint etwas Dialog mit Ordner-Darstellungseinstellungen nach oben)

Andere Tipps

ich vielleicht liest du falsch Frage, aber ich glaube, Sie für die erweiterten Dateieigenschaften für Dateien suchen. das heißt Windows Explorer öffnen und Spalten wie Attribute sehen, Eigentümer, Urheberrecht, Größe, Datum erstellt etc?

Es ist eine API in Shell32 GetDetailsOf genannt, dass diese Informationen zur Verfügung stellt. Ein Ausgang Artikel über Codeproject Prost, John

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top