首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新程序中的第三方软件路径和图标?

如何更新程序中的第三方软件路径和图标?
EN

Stack Overflow用户
提问于 2022-11-11 17:24:59
回答 1查看 74关注 0票数 0

我创建了一种快速访问程序,以便快速访问计算机上的第三方程序/软件和文件夹。该程序运行良好,但前几天软件公司更新了几个程序,这在我的程序中造成了异常,因为路径被更改为他们软件的新更新版本。

为了显示每个程序的图标,我从第三方程序/软件的exec文件路径中提取图标。但是,某些程序包含版本或日期信息“路径中的”,这就是抛出异常的原因(请参阅下面的列表)。这也会导致在运行程序时出现异常,因为我使用exec路径来运行每个程序。因此,当软件公司更新其软件时,路径中的版本或日期信息会发生变化,并引发异常,因为路径已经更改,而我的程序无法再找到正确的路径来提取图标或运行程序。

\Program\Adobe 2023\Photoshop.exe

  • C:\Program文件(x86)\IObit\Driver Booster\10.0.0\DriverBooster.exe

  • C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe

  • C:\Program Files\Paratext 9\Paratext.exe

  • C:\Program Files (X86)\MicrosoftVisualStudio\2019\Community\Common7\IDE\devenv.exe

我目前正在考虑仅仅使用My.Resources中的图标作为解决图标提取问题的方法。但这不能解决我用来运行程序的执行路径?当新的程序版本发布时,有人知道更新路径信息的方法吗?我非常感谢在这方面提供一些帮助,因为我以前从未面对过这个问题,而且老实说,我不知道从哪里开始解决这个问题?

我的程序将每个第三方软件的文件路径从文本文件加载到ListBox (即硬编码)。这是问题的一部分。有谁知道我怎样才能实时地获得每个程序的路径,以便得到实际的路径,从而使它们总是被更新?

关于SO的相关问题

当第三方软件被更新时,任何包含版本信息的软件路径(即版本、年份等)变化。这将防止从未更新的硬编码路径中提取图标.为了解决这个问题,我试图学习如何直接从注册表提取路径,在运行时加载它们,然后从更新的路径中提取软件图标。请看我的问题,在下面的链接,希望解释更多的我正在努力实现的目标:

Registry-Hierarchy

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 07:56:00

打开Visual并创建一个新的窗体应用程序。在窗体上添加以下对象:

两个按钮--一个是ListView,一个是ImageList --为ListView设置了以下属性:

视图: SmallIcon SmallImageList:您的设计ImageList的名称应该如图1所示。

代码:

代码语言:javascript
复制
Public Sub ExtractIcon_1()

      Dim dInfo As New System.IO.DirectoryInfo("c:\")

      Dim lvItem As ListViewItem

      ListView2.BeginUpdate()

      ListView2.Items.Clear()

      Dim CurrFile As System.IO.FileInfo

      For Each CurrFile In dInfo.GetFiles()

         Dim iFileIcon As Icon = SystemIcons.WinLogo

         lvItem = New ListViewItem(CurrFile.Name, 1)

         If Not (ImageList2.Images.ContainsKey _
               (CurrFile.Extension)) Then

            iFileIcon = System.Drawing.Icon.ExtractAssociatedIcon _
               (CurrFile.FullName)

            ImageList2.Images.Add(CurrFile.Extension, iFileIcon)

         End

         lvItem.ImageKey = CurrFile.Extension
         ListView2.Items.Add(

      Next CurrFile

      ListView2.EndUpdate()

   End Sub

在第一个按钮后面添加以下子程序:

代码语言:javascript
复制
Private Sub Button1_Click(sender As Object, e As EventArgs) _
         Handles Button1.Click

      ExtractIcon_1()

   End Sub

https://www.codeguru.com/visual-basic/extracting-icons-associated-with-files-in-visual-basic-net/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74406118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档