Tag: windows shell

使用.net 4.0引用Windows shell接口

我使用以下代码来引用shell DLL Type t = Type.GetTypeFromProgID(“Shell.Application”); Shell s = (Shell)Activator.CreateInstance(t); Console.WriteLine(“success”); Console.ReadLine(); 它在我的Windows 7开发机器上工作正常。但是当我尝试在Win 2003服务器上运行exe时,我得到了这个exception Unable to cast COM object of type ‘System.__ComObject’ to interface type ‘Shell3 2.Shell’. This operation failed because the QueryInterface call on the COM compo nent for the interface with IID ‘{866738B9-6CF2-4DE8-8767-F794EBE74F4E}’ failed due to the following error: No such interface […]

如何以编程方式将文件夹添加到用户的collections夹(在Windows资源管理器中)?

我正在寻找一种方法,以编程方式将文件夹添加到Windows资源管理器中的collections夹。 它的Windows资源管理器特定,基于这个项目: http : //www.codeproject.com/Tips/132804/Open-folders-using-a-Run-Command 到目前为止,我已经尝试过Process Monitor并搜索注册表,但我似乎无法在regedit找到我的Windows资源管理器collections夹。 Microsoft在Windows 8中对此进行了更改,因此我已相应地标记了我的问题。 请参阅Win8及其他详细信息的标记答案中的注释。

如何获取文件属性?

我想要一个显示媒体文件的一些文件属性的应用程序,如果可用,比如(不知道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 […]

如何从文件快捷方式获取路径名? 获得例外

可能重复: 获取快捷方式文件夹的目标 例如,在C:\TEMP\有一个名为test.dll的快捷方式,快捷方式将导致文件名test.dll 我想从快捷方式只获取路径名到它自己的文件。 所以,我在另一个递归函数中调用此函数,并在每次从我的硬盘中的另一个目录中放入此函数。 例如,第一个目录是C:\TEMP然后在C:\TEMP有快捷方式文件,我想要获取该文件的路径。 在C:\TEMP进行测试我现在有3个文件: hpwins23.dat hpwmdl23.dat hpwmdl23.dat – Shortcut ( C:\TEMP\hpwmdl23.dat ) 所以,我想得到的是快捷方式的路径名,在这种情况下是C:\ TEMP 我试着使用这个function: public string GetShortcutTargetFile(string shortcutFilename) { string pathOnly = System.IO.Path.GetDirectoryName(shortcutFilename); string filenameOnly = System.IO.Path.GetFileName(shortcutFilename); Shell shell = new Shell(); Folder folder = shell.NameSpace(pathOnly); if (folder == null) { } else { FolderItem folderItem = folder.ParseName(filenameOnly); if (folderItem != […]