Check if package already registered
This commit is contained in:
Родитель
558ff88d5e
Коммит
5af584fed4
|
@ -48,6 +48,26 @@ namespace
|
|||
dwlConditionMask);
|
||||
}
|
||||
|
||||
bool IsPackageRegistered(std::wstring packageDisplayName)
|
||||
{
|
||||
using namespace winrt::Windows::Foundation;
|
||||
using namespace winrt::Windows::Management::Deployment;
|
||||
|
||||
PackageManager packageManager;
|
||||
|
||||
for (auto const& package : packageManager.FindPackages())
|
||||
{
|
||||
const auto& packageFullName = std::wstring{ package.Id().FullName() };
|
||||
|
||||
if (packageFullName.contains(packageDisplayName))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool RegisterSparsePackage(std::wstring externalLocation, std::wstring sparsePkgPath)
|
||||
{
|
||||
using namespace winrt::Windows::Foundation;
|
||||
|
@ -274,7 +294,12 @@ public:
|
|||
{
|
||||
std::wstring path = get_module_folderpath(g_hInst);
|
||||
std::wstring packageUri = path + L"\\PowerRenameContextMenuPackage.msix";
|
||||
RegisterSparsePackage(path, packageUri);
|
||||
|
||||
std::wstring packageDisplayName{ L"PowerRenameContextMenu" };
|
||||
if (!IsPackageRegistered(packageDisplayName))
|
||||
{
|
||||
RegisterSparsePackage(path, packageUri);
|
||||
}
|
||||
}
|
||||
|
||||
save_settings();
|
||||
|
|
Загрузка…
Ссылка в новой задаче