2014-12-22 59 views
0

我正在使用以下代码创建Internet快捷方式。但是我设置的快捷方式的图标没有在桌面上显示。但是,如果我手动重命名其他名称的快捷方式工作正常(图标正在加载为快捷方式图像)。桌面上不显示互联网快捷方式窗口7的图标

private String CreateDeskTopShortcut(String ApplicationStartupUrl, String IconFilePath) 
{ 
    string deskDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
    String UrlPath = deskDir + "\\" + "Test" + ".url"; 

    using (StreamWriter writer = new StreamWriter(UrlPath)) 
    { 
     writer.WriteLine("[InternetShortcut]"); 
     writer.WriteLine("URL=" + ApplicationStartupUrl); 
     writer.WriteLine("IconFile=" + IconFilePath); 
     writer.WriteLine("IconIndex=0"); 
     writer.Flush(); 
    } 

    return UrlPath; 
} 

调用相同

CreateDeskTopShortcut("https://ipAddress/website/Login.aspx","E:\Setup_Local\Server.ico"); 
+0

@BenRobinson - 不是真的。我刚刚在LINQPad中运行他的代码,并成功生成了一个快捷方式。 – pixelbadger

+0

但其服务器的目的。其作为互联网捷径的工作。我面临的唯一问题是图标不加载相同。这是创建Internet快捷方式的可接受方式。 – amesh

回答

1

它看起来像Windows缓存的图标路径,这种情况继续下去,即使你删除的文件。我不知道这个缓存存储在哪里,或者如果它在重新启动之后仍然存在。我的再现步骤如下:

  1. 调用CreateDeskTopShortcut(“http://www.google.co.uk”,“\ path \ to.ico”);
  2. 用预期图标创建快捷方式。
  3. 删除快捷方式并调用CreateDeskTopShortcut(“http://www.google.co.uk”,“\ other-path \ to.ico”);
  4. 已创建快捷方式,但带有步骤1中的图标。
  5. 将快捷方式名称从“测试”更改为“测试2”。重复步骤3.
  6. 创建快捷方式,带有预期的图标。

所以使用的图标似乎映射到快捷方式的名称。

+0

谢谢。 +1。我也得出结论,存在一些缓存。现在我用一个新名称创建图像,我可以获取图像,但是可以获得全球图像的图像。为了解决这个问题,我在临时位置创建图像,然后移动到桌面。之后显示正确的图像。 – amesh

相关问题