diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs index c6e92189aa..76d9121e4a 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs @@ -103,7 +103,14 @@ public static ManagementDeploymentFactory Instance /// A instance. public PackageManager CreatePackageManager() { - return Create(PackageManagerType, PackageManagerIid); + var result = Create(PackageManagerType, PackageManagerIid); + + if (!Utilities.UsesInProcWinget) + { + _ = CoAllowSetForegroundWindow(result, IntPtr.Zero); + } + + return result; } /// @@ -222,5 +229,8 @@ private static T Create(Type? type, in Guid iid) return (T)instance; #endif } + + [DllImport("ole32.dll", ExactSpelling = true, PreserveSig = true)] + private static extern int CoAllowSetForegroundWindow([MarshalAs(UnmanagedType.IUnknown)] object pUnk, IntPtr reserved); } }