我正在尝试读取C#4应用程序中所有桌面快捷方式的目标。 Windows桌面上的快捷方式可以来自多个位置,具体取决于快捷方式是为所有用户还是仅为当前用户创build的。 在这个特定的情况下,我试图从公共桌面读取一个快捷方式,例如从C: Users Public Desktop shortcut.lnk。
代码是这样的(path是一个string包含lnk文件的path):
var shell = new Shell32.ShellClass(); var folder = shell.NameSpace(Path.GetDirectoryName(path)); var folderItem = folder.ParseName(Path.GetFileName(path)); if (folderItem != null) { var link = (Shell32.ShellLinkObject)folderItem.GetLink;
最后一行抛出一个System.UnauthorizedAccessException,表示不允许读取快捷方式文件的内容。 我已经尝试用户的私人桌面上的快捷方式文件(c:用户用户名桌面),并正常工作。
所以,我的问题是:
C#在运行时或更早时间设置stream程描述
如何刷新或刷新C#Windows窗体?
使用.net解锁本地计算机
有一种更简单的方法来在C#控制台应用程序中使用Windows ctrl + v(粘贴)function吗?
InvokeHelper()抛出Access被拒绝exception
(1)为什么我的应用程序不允许/读取/代码的快捷方式,当我可以清楚地读取用户的内容?
(2)有没有办法解决这个问题? 也许使用一个特殊的清单文件的应用程序?
顺便说一句,我的操作系统是Windows 7,64位。
好的
-H-
TFS C#API:Workspace.PendAdd默默地失败
使用.NET代码将系统时间同步到域控制器
win10的wpf窗口定位错误
是的,默认情况下,您无法访问该文件夹中的.lnk文件。 您正在创建一个COM对象,允许您修改.lnk属性。 这就需要关闭UAC的管理员级帐户。
是的,你可以用清单来解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。