PackageManager.FindPackages Metode

Definisi

Overload

FindPackages(String, String)

Menemukan semua Paket yang terinstal dengan nama dan penerbit yang ditentukan.

FindPackages(String)

Mengambil informasi tentang keluarga Paket tertentu yang diinstal di semua pengguna.

FindPackages()

Mengambil informasi tentang keluarga Paket tertentu yang diinstal di semua pengguna.

FindPackages(String, String)

Menemukan semua Paket yang terinstal dengan nama dan penerbit yang ditentukan.

public:
 virtual IIterable<Package ^> ^ FindPackages(Platform::String ^ packageName, Platform::String ^ packagePublisher) = FindPackages;
/// [Windows.Foundation.Metadata.Overload("FindPackagesByNamePublisher")]
IIterable<Package> FindPackages(winrt::hstring const& packageName, winrt::hstring const& packagePublisher);
[Windows.Foundation.Metadata.Overload("FindPackagesByNamePublisher")]
public IEnumerable<Package> FindPackages(string packageName, string packagePublisher);
function findPackages(packageName, packagePublisher)
Public Function FindPackages (packageName As String, packagePublisher As String) As IEnumerable(Of Package)

Parameter

packageName
String

Platform::String

winrt::hstring

Nama paket. Parameter ini tidak boleh null.

packagePublisher
String

Platform::String

winrt::hstring

Penerbit paket. Parameter ini tidak boleh null.

Mengembalikan

Jika metode berhasil, kumpulan objek paket yang dapat dijumlahkan dengan nama paket dan nama penerbit yang sama dikembalikan. Setiap objek Paket dalam koleksi ini berisi informasi tentang paket, termasuk tetapi tidak terbatas pada nama, penerbit, versi, dan lokasi penginstalannya. Jika tidak ada paket dengan nama dan penerbit yang ditentukan yang ditemukan, metode ini mengembalikan daftar kosong.

Atribut

Persyaratan Windows

Kemampuan aplikasi
packageQuery

Keterangan

Metode ini memerlukan hak istimewa administratif.

Lihat juga

Berlaku untuk

FindPackages(String)

Mengambil informasi tentang keluarga Paket tertentu yang diinstal di semua pengguna.

public:
 virtual IIterable<Package ^> ^ FindPackages(Platform::String ^ packageFamilyName) = FindPackages;
/// [Windows.Foundation.Metadata.Overload("FindPackagesByPackageFamilyName")]
IIterable<Package> FindPackages(winrt::hstring const& packageFamilyName);
[Windows.Foundation.Metadata.Overload("FindPackagesByPackageFamilyName")]
public IEnumerable<Package> FindPackages(string packageFamilyName);
function findPackages(packageFamilyName)
Public Function FindPackages (packageFamilyName As String) As IEnumerable(Of Package)

Parameter

packageFamilyName
String

Platform::String

winrt::hstring

Nama keluarga paket. Parameter ini tidak boleh null.

Mengembalikan

Jika metode berhasil, koleksi objek paket yang dapat dijumlahkan dengan nama keluarga paket yang sama akan dikembalikan. Setiap objek Paket dalam koleksi ini berisi informasi tentang paket, termasuk tetapi tidak terbatas pada nama, penerbit, versi, dan lokasi penginstalannya. Jika tidak ada paket dengan nama keluarga paket yang ditentukan yang ditemukan, metode ini mengembalikan daftar kosong.

Atribut

Persyaratan Windows

Kemampuan aplikasi
packageQuery

Keterangan

Metode ini memerlukan hak istimewa administratif. Setiap paket dalam koleksi IIterable(Package) dapat diinstal untuk pengguna saat ini atau untuk pengguna lain. Metode ini berbeda dari metode FindPackages(String packageName, String pulisherName ). Di sini parameter packageFamilyName adalah string tunggal, terdiri dari nama paket dan hash penerbit paket.

Lihat juga

Berlaku untuk

FindPackages()

Mengambil informasi tentang keluarga Paket tertentu yang diinstal di semua pengguna.

public:
 virtual IIterable<Package ^> ^ FindPackages() = FindPackages;
/// [Windows.Foundation.Metadata.Overload("FindPackages")]
IIterable<Package> FindPackages();
[Windows.Foundation.Metadata.Overload("FindPackages")]
public IEnumerable<Package> FindPackages();
function findPackages()
Public Function FindPackages () As IEnumerable(Of Package)

Mengembalikan

Jika metode berhasil, kumpulan objek paket yang dapat dijumlahkan dikembalikan. Setiap objek Paket dalam koleksi ini berisi informasi tentang paket, termasuk tetapi tidak terbatas pada nama, penerbit, versi, dan lokasi penginstalannya.

Atribut

Persyaratan Windows

Kemampuan aplikasi
packageQuery

Contoh

Contoh ini menggunakan FindPackages() untuk menghitung paket yang diinstal untuk semua pengguna.

using Windows.Management.Deployment;

public static int Main(string[] args)
{
    PackageManager packageManager = new PackageManager();

    IEnumerable<Windows.ApplicationModel.Package> packages = 
        (IEnumerable<Windows.ApplicationModel.Package>) packageManager.FindPackages();

    int packageCount = 0;
    foreach (var package in packages)
    {
        DisplayPackageInfo(package);

        packageCount += 1;
    }

    if (packageCount < 1)
    {
        Console.WriteLine("No packages were found.");
    }
}

private static void DisplayPackageInfo(Windows.ApplicationModel.Package package)
{
    Console.WriteLine("Name: {0}", package.Id.Name);

    Console.WriteLine("FullName: {0}", package.Id.FullName);

    Console.WriteLine("Version: {0}.{1}.{2}.{3}", package.Id.Version.Major, package.Id.Version.Minor,
        package.Id.Version.Build, package.Id.Version.Revision);

    Console.WriteLine("Publisher: {0}", package.Id.Publisher);

    Console.WriteLine("PublisherId: {0}", package.Id.PublisherId);

    Console.WriteLine("Installed Location: {0}", package.InstalledLocation.Path);

    Console.WriteLine("IsFramework: {0}", package.IsFramework);
}

Lihat juga dukungan Visual Studio untuk C++/WinRT.

// main.cpp : In Visual Studio, create a new Windows Console Application (C++/WinRT), and run it (or run Visual Studio) as administrator.
#include "pch.h"

#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.Management.Deployment.h>
#include <winrt/Windows.Storage.h>
#include <iostream>

using namespace winrt;
using namespace Windows::ApplicationModel;
using namespace Windows::Management::Deployment;
using namespace Windows::Storage;

void DisplayPackageInfo(Windows::ApplicationModel::Package const& package)
{
    try
    {
        std::wcout << L"Name: " << package.Id().Name().c_str() << std::endl;
        std::wcout << L"FullName: " << package.Id().FullName().c_str() << std::endl;
        std::wcout << L"Version: " << package.Id().Version().Major << "." << package.Id().Version().Minor << "." << package.Id().Version().Build << "." << package.Id().Version().Revision << std::endl;
        std::wcout << L"Publisher: " << package.Id().Publisher().c_str() << std::endl;
        std::wcout << L"PublisherId: " << package.Id().PublisherId().c_str() << std::endl;
        std::wcout << L"Installed Location: " << package.InstalledLocation().Path().c_str() << std::endl;
        std::wcout << L"IsFramework: " << (package.IsFramework() ? L"True" : L"False") << std::endl;
    }
    catch (winrt::hresult_error const& ex)
    {
        std::wcout << ex.message().c_str() << std::endl;
    }
}

int wmain()
{
    winrt::init_apartment();

    bool noPackagesFound{ true };
    for (auto const& package : PackageManager{}.FindPackages())
    {
        DisplayPackageInfo(package);
        noPackagesFound = false;
    }

    if (noPackagesFound)
    {
        std::wcout << L"No packages were found." << std::endl;
    }

    return 0;
}
using namespace Windows::Management::Deployment;

[STAThread]
int __cdecl main(Platform::Array<String^>^ args)
{
    PackageManager^ packageManager = ref new PackageManager();

    IIterable<Windows::ApplicationModel::Package^>^ packages = packageManager->FindPackages(); 

    int packageCount = 0;
    std::for_each(Windows::Foundation::Collections::begin(packages), Windows::Foundation::Collections::end(packages), 
    [&](Windows::ApplicationModel::Package^ package) 
    {
        DisplayPackageInfo(package);

        packageCount += 1; 
    });

    if ( packageCount < 1 )
    {
        wcout << L"No packages were found." << endl;
    }

    return 0;
}

void DisplayPackageInfo(Windows::ApplicationModel::Package^ package)
{
    wcout << L"Name: " << package->Id->Name->Data() << endl;
    wcout << L"FullName: " << package->Id->FullName->Data() << endl;
    wcout << L"Version: " << package->Id->Version.Major << "." << 
        package->Id->Version.Minor << "." << package->Id->Version.Build << 
        "." << package->Id->Version.Revision << endl;
    wcout << L"Publisher: " << package->Id->Publisher->Data() << endl;
    wcout << L"PublisherId: " << package->Id->PublisherId->Data() << endl;
    wcout << L"Installed Location: " << package->InstalledLocation->Path->Data() << endl;
    wcout << L"IsFramework: " << (package->IsFramework ? L"True" : L"False") << endl;
}

Keterangan

Metode ini memerlukan hak istimewa administratif. Jika tidak, AccessDeniedException akan dilemparkan.

Lihat juga

Berlaku untuk