- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试读取 C# 4 应用程序中所有桌面快捷方式的目标。 Windows 桌面上的快捷方式可以来自多个位置,具体取决于快捷方式是为所有用户创建的还是仅为当前用户创建的。在这种特定情况下,我试图从公共(public)桌面读取快捷方式,例如来自 C:\Users\Public\Desktop\shortcut.lnk。
代码是这样的(path是一个包含lnk文件路径的字符串):
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,表示不允许读取快捷方式文件的内容。我已经在用户的私有(private)桌面 (c:\Users\username\Desktop) 上尝试了快捷方式文件并且工作正常。
所以,我的问题是:
(1) 为什么我的应用程序不允许/读取/代码中的快捷方式,而我可以作为用户清楚地阅读内容?
(2) 有办法解决这个问题吗?也许为应用程序使用特殊的 list 文件?
顺便说一句,我的操作系统是 Windows 7,64 位。
好好的
-h-
最佳答案
是的,默认情况下您无法访问该文件夹中的 .lnk 文件。您正在创建一个允许您修改 .lnk 属性的 COM 对象。这需要关闭 UAC 的管理员级别帐户。
是的,你可以解决这个问题 with a manifest .
关于c# - 为什么我在通过 Shell32 读取公共(public)快捷方式时得到 E_ACCESSDENIED?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2934420/
我创建了一个查询,但现在我需要将其重构为 CakePHP 标准。只是我似乎无法让它工作。 这是我的工作查询: $query = $this->Transfer->query( "SELECT DIS
我是一名优秀的程序员,十分优秀!