fix duplicate apps

This commit is contained in:
Leilei Zhang
2025-05-27 14:38:04 +08:00
parent 79bf7bce3c
commit c9b3e8574a
2 changed files with 11 additions and 18 deletions

View File

@@ -40,7 +40,7 @@ public static class AppxPackageHelper
IAppxManifestApplication* manifestApp;
manifestApps->GetCurrent(&manifestApp);
var hr = manifestApp->GetStringValue("AppListEntry", out var appListEntryPtr).ThrowOnFailure();
var hr = manifestApp->GetStringValue("AppListEntry", out var appListEntryPtr);
var appListEntry = ComFreeHelper.GetStringAndFree(hr, appListEntryPtr);
if (appListEntry != "none")

View File

@@ -55,30 +55,23 @@ public class ShellLinkHelper : IShellLinkHelper
const uint SLR_NO_UI = 0x1;
link->Resolve(hwnd, SLR_NO_UI);
PWSTR pBuffer = null;
var hr = link->GetPath(pBuffer, MAX_PATH, null, 0x1);
var buffer = stackalloc char[MAX_PATH];
target = ComFreeHelper.GetStringAndFree(hr, pBuffer);
var hr = link->GetPath((PWSTR)buffer, MAX_PATH, null, 0x1);
target = hr.Succeeded ? new string(buffer) : string.Empty;
// To set the app description
if (!string.IsNullOrEmpty(target))
{
PWSTR pszName = null;
try
{
var desHr = link->GetDescription(pszName, MAX_PATH).ThrowOnFailure();
Description = Description = ComFreeHelper.GetStringAndFree(desHr, pszName);
}
catch (Exception)
{
// Log.Exception($"Failed to fetch description for {target}, {e.Message}", e, GetType());
Description = string.Empty;
}
var descBuffer = stackalloc char[MAX_PATH];
var desHr = link->GetDescription(descBuffer, MAX_PATH);
Description = desHr.Succeeded ? new string(descBuffer) : string.Empty;
PWSTR pszArgs = null;
var argHr = link->GetArguments(pszArgs, MAX_PATH);
var argsBuffer = stackalloc char[MAX_PATH];
var argHr = link->GetArguments(argsBuffer, MAX_PATH);
Arguments = ComFreeHelper.GetStringAndFree(argHr, pszArgs);
Arguments = argHr.Succeeded ? new string(argsBuffer) : string.Empty;
// Set variable to true if the program takes in any arguments
if (Arguments.Length != 0)