C# 如何从计算机中删除特定软件的所有快捷方式(.lnk)文件?

C# 如何从计算机中删除特定软件的所有快捷方式(.lnk)文件?,c#,windows,powershell,registry,advanced-installer,C#,Windows,Powershell,Registry,Advanced Installer,我正在尝试从系统中删除特定软件的所有.lnk文件。是否仍然可以使用注册表删除所有shorcut 我已经编写了一个C#程序,它在整个机器上搜索一个特定的.lnk文件,然后从机器上删除,但我知道这不是一种eligant方法,在这种方法中,开始菜单shorcut仍然固定 有谁能帮我解决这个问题吗 在这里,我使用高级安装程序卸载软件脚本时,应删除计算机上的所有shorcuts。您将希望使用Windows脚本主机编辑快捷方式文件的功能。它被称为CreateShortcut,但请放心,它也可以打开和修改它们

我正在尝试从系统中删除特定软件的所有.lnk文件。是否仍然可以使用注册表删除所有shorcut

我已经编写了一个C#程序,它在整个机器上搜索一个特定的.lnk文件,然后从机器上删除,但我知道这不是一种eligant方法,在这种方法中,开始菜单shorcut仍然固定

有谁能帮我解决这个问题吗


在这里,我使用高级安装程序卸载软件脚本时,应删除计算机上的所有shorcuts。

您将希望使用Windows脚本主机编辑快捷方式文件的功能。它被称为CreateShortcut,但请放心,它也可以打开和修改它们

$Target = [RegEx]::Escape("C:\Program Files\Something\Application.exe") #Change this to the path to your executable
$wshShell = new-object -comobject WScript.Shell
get-childitem -path C:\ -filter *.lnk -recurse | foreach-object {
    $shortcut = $wshShell.CreateShortcut($_.FullName)
    If($shortcut.TargetPath -match $Target){$_.Delete()}
}

扫描整个硬盘的快捷方式(*.LNK),找到每一个快捷方式都会打开它的属性,检查目标,如果它与您的可执行路径匹配,则会将其删除。

您只需打开命令提示符,而无需管理员

类型:
cd桌面
*

然后键入:
del**.lnk
*


*命令是针对Windows的

我认为无论您采取何种方式,都会在手动快捷方式的情况下进行递归搜索。也许这些可以帮助您:,注册表不会直接告诉您任何关于.lnk文件位置的信息。确保获取所有可能文件的唯一方法是使用C#程序。没有通用的方法。当然,您可以将搜索限制在特定用户看到的范围内。顺便问一下,你能重写你的最后一段吗?