Tag: windows api code pack

CommonOpenFileDialog导致Windows窗体缩小

我一直在研究Windows窗体应用程序,并且最近添加了一个简单的设置页面,允许用户选择输出所在的文件夹。 OpenFileDialog是丑陋的,不好用,所以我在Windows API CodePack中添加了访问CommonOpenFileDialog的所有function。 当我打开CommonOpenFileDialog时,Windows窗体应用程序缩小到较小的大小,如附加的图像所示。 左边是程序正常,右边是打开对话框: 我之前和之后都试过检查表格的大小,这没有改变,所以我打了一个砖墙。 任何信息都有用,如果需要,我可以提供更多细节。 打开表单的代码是: CommonOpenFileDialog dialog = new CommonOpenFileDialog(); dialog.DefaultDirectory = selectedFolderTextBox.Text; dialog.IsFolderPicker = true; if (dialog.ShowDialog() != CommonFileDialogResult.Ok) return; selectedFolderTextBox.Text = dialog.FileName;

使用Windows API Code Pack for Microsoft使用ShellFile对象

可以从此处下载适用于Microsoft的Windows API代码包。 这是一个非常好的库,它有很好的例子。 例如,如果我从下载代码包中打开zip中的解决方案WindowsAPICodePack10(它只包含我添加了win表单和wpf应用程序的库) 然后我可以非常轻松地使用该库,例如在我的wpf应用程序中,我可以拖动: ExplorerBrowser用户控件(注意我必须添加对解决方案附带的库的引用) 然后使用一个按钮我可以用这行代码填充该控件: // Create a new CommonOpenFileDialog to allow users to select a folder/library CommonOpenFileDialog cfd = new CommonOpenFileDialog(); // Set options to allow libraries and non filesystem items to be selected cfd.IsFolderPicker = true; cfd.AllowNonFileSystemItems = true; // Show the dialog CommonFileDialogResult result = cfd.ShowDialog(); // if the user […]

访问不存在的缩略图

我已经创建了一个应用程序,它会向您显示计算机中的文件列表。 每当您单击列表中的任何项目时,它旁边的小PictureBox都应显示相应文件的缩略图。 我在Windows 7上使用C#。 为了获得缩略图,我再次发现了一个在不同问题中发布的方法。 首先,我引用Windows API代码包。 然后,我使用以下代码: ShellFile shellFile = ShellFile.FromFilePath(fullPathToFile); myPictureBox.Image = shellFile.Thumbnail.LargeBitmap; 这并不总是有效。 有时,显示的缩略图仅仅是“默认应用程序”图标。 我发现只有在Windows之前为该文件生成缩略图并将其存储在缩略图缓存中时才显示真正的缩略图。 这意味着我必须手动打开文件夹,等待Windows为每个文件生成缩略图,然后我的应用程序将能够看到这些拇指。 我的程序如何在使用它们之前强制Windows 7生成真正的缩略图? 更新(由Li0liQ提供) 可以通过添加FormatOption强制缩略图检索: ShellFile shellFile = ShellFile.FromFilePath(fullPathToFile); shellFile.Thumbnail.FormatOption = ShellThumbnailFormatOption.ThumbnailOnly; myPictureBox.Image = shellFile.Thumbnail.LargeBitmap; 但是,我得到一个例外,如果缩略图还没有: 当前的ShellObject没有有效的缩略图处理程序,或者在提取此特定shell对象的缩略图时出现问题。 —> System.Runtime.InteropServices.COMException:未注册类(HRESULTexception:0x80040154(REGDB_E_CLASSNOTREG)) 请参阅如何在Windows资源管理器中刷新文件的缩略图? 潜在线索的问题和代码片段 。

如何仅使CommonOpenFileDialog选择文件夹,但仍显示文件?

我使用Microsoft的CommonOpenFileDialog来允许用户选择文件夹,但是当对话框出现时没有文件可见。 当IsFolderPicker设置为true时,是否可以显示文件和文件夹? 我目前的代码看起来像这样 var dialog = new CommonOpenFileDialog(); dialog.IsFolderPicker = true; if (dialog.ShowDialog() == CommonFileDialogResult.Ok) { SelectedFolderPath = dialog.FileName; }

如何获取文件属性?

我想要一个显示媒体文件的一些文件属性的应用程序,如果可用,比如(不知道windows中使用的确切英文单词)FileName,Length / Duration,FileType(.avi .mp3等)我试过taglib和windowsapishell但我没有得到一个工作结果(参考是好的) ShellFile so = ShellFile.FromFilePath(file); so.Properties.System.(everythingIwant) 向我展示了我想要显示的很多文件属性,但我无法让它工作一个错误的例子: ‘WindowsFormsApplication2.vshost.exe’(托管(v4.0.30319)):已加载’C:\ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \ WindowsBase.dll’,跳过加载符号。 模块已经过优化,调试器选项“Just My Code”已启用。 程序'[6300] WindowsFormsApplication2.vshost.exe:Program Trace’已退出,代码为0(0x0)。 程序'[6300] WindowsFormsApplication2.vshost.exe:Managed(v4.0.30319)’已退出,代码为0(0x0)。 容易的事情 var thing = so.Properties.System.FileName.Description; Console.WriteLine(thing); 不会工作 我知道一些Java和PHP编程,但我对C#完全不熟悉 特别感谢@ marr75和@errorstacks! 一个跟进问题:我做了这个,它有效 class Program { static void Main(string[] args) { string file = “E:/Dump/Shutter […]