私はP/Invokeにあまり良くありません。誰も宣言し、次のshell32.dll関数を.NETで使用する方法を教えてもらえますか? http://msdn.microsoft.com/en-us/library/bb762230%28VS.85%29.aspxからP/Invoke for shell32.dllのSHMultiFileProperties
:
HRESULT SHMultiFileProperties(
IDataObject *pdtobj,
DWORD dwFlags
);
これは、複数のファイル・システム・オブジェクトのためのWindowsシェルのプロパティ]ダイアログボックスを表示するためのものです。
私はすでに一つのファイルまたはフォルダのSHObjectPropertiesを使用する方法を考え出し:
[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,
}
誰でも助けることができますか?
は、これは正しい道に私を得たとの質問への答えなので、+回答は、1 しかし、それはより複雑です。私はフォルダの外観の設定ではなく、マルチファイルのプロパティ(アイテムの合計サイズなど)を探していました。 JDropFilesクラスのCopyFilesToClipboardForDragDrop(パス、PT)のための http://www.codeproject.com/KB/files/JFileManager.aspx ルック:幸いにも私は、必要なコードが含まれているコードプロジェクトにJFileManagerを見つけました。これは、IDataObjectにシェルIDリストデータを作成するのに役立ちます。 これはVistaで動作しますが、Windows 2003ではまだ失敗します。まだ完璧なソリューションを探しています。 –