استفاده از WUA برای تعیین وضعیت نصب به روز رسانی ویندوز
خلاصه
استفاده از WUA برای بررسی به روز رسانی (در کیلوبایت) که بر روی ویندوز شما در حال حاضر با استفاده از نصب شده است.
محیط عامل
محیط بررسی عملیات
نسخه Windows |
|
نسخه .NET Framework |
|
الزامات سیستم مورد نیاز
نسخه Windows |
|
نسخه .NET Framework |
|
ماده
درباره این نمونه
هدف این نمونه تعیین کیلوبایتی است که بر روی ویندوز نصب شده است، و هدف تقریباً همان «استفاده از WMI برای تعیین وضعیت نصب به روز رسانی های ویندوز» است. با این حال، این نمونه با استفاده از "WUA" به جای WMI بررسی می شود.
توضیحات کیلوبایت در "استفاده از WMI برای پیدا کردن چگونه به روز رسانی ویندوز نصب شده است توصیف شده است،" بنابراین بررسی وجود دارد.
WUA چیه؟
WUA مخفف "عامل به روز رسانی ویندوز" است و مجموعه ای از رابط های COM است که اجازه دسترسی به ویندوز به روز رسانی و خدمات به روز رسانی سرور ویندوز (WSUS) را می دهد. شما می توانید از آن برای تعیین اینکه کدام کیلوبایت بر روی ویندوز نصب شده است استفاده کنید.
برای توضیح دقیق WUA و برنامه نویسی با WUA به لینک های زیر مراجعه کنید:
- Windows Update Agent API
- آیا راهی برای دریافت لیست تمام به روز رسانی هایی که به کامپیوتر من اضافه شده است وجود دارد؟
- IUpdateSearcher::روش جستجو
برنامه هایی که وضعیت نصب کیلوبایت را جستجو می کنند
افزودن منابع (C#)
برای استفاده از WUA، شما باید مرجع WUAPI 2.0 نوع کتابخانه از COM.
برای پروژه های C# ، راست کلیک کنید منابع از راه حل اکسپلورر و اضافه کردن منابع را انتخاب کنید.
هنگامی که گفتگوی مرجع اضافه ظاهر می شود، WUAPI 2.0 نوع کتابخانه را از زبانه COM انتخاب کنید و روی دکمه OK کلیک کنید.
خوب اگر "WUApiLib" به تنظیمات مرجع راه حل اکسپلورر اضافه شده است.
اضافه کردن یک مرجع (VB.NET)
برای VB.NET روی پروژه من از Solution Explorer کلیک راست کنید و Open را انتخاب کنید.
هنگامی که خواص باز شد، روی "مرور" از زبانه سمت چپ کلیک کنید، روی دکمه افزودن در سمت راست کلیک کنید. همانطور که در C#, اضافه کردن گفتگوی مرجع نمایش داده شده است, بنابراین انتخاب کنید "WUAPI 2.0 نوع کتابخانه" از "COM" زبانه و کلیک بر روی دکمه OK.
اگر شما به صفحه نمایش قبلی بازگشت و اضافه کردن "WUAPI 2.0 نوع کتابخانه" به لیست میانی، آن را خوب است.
همچنین، بیایید "WUApiLib" را از لیست زیر بررسی کنید تا توضیحات فضای نام در برنامه حذف شود.
صحنه
صفحه نمایش مورد استفاده در این نمونه یک صفحه نمایش ساده با دکمه اجرا برای بررسی وضعیت نصب کیلوبایت و یک جعبه متن است که نتایج را نمایش می دهد.
من آن را در WPF ساخت، اما همان صفحه نمایش قابل تنظیم در فرم ویندوز است.
برنامه
UpdateSession
C # اضافه می کند ""using WUApiLib;
به آغاز کد برای کاهش شرح کلاس ها و دیگر نامهای نام. در VB.NET، شما مشخص شده برای وارد کردن فضای نام در خواص پروژه، بنابراین شما لازم نیست برای نوشتن هر چیز خاص، اما اگر شما نیست، شما نیاز به اضافه کردن ".Imports WUApiLib
* در هر دو زبان C# و VB.NET اگر همه نام های کلاس از یک نام نام مانند "WUApiLib.UpdateSession
نوشته شوند، مشخصات فوق لازم نیست.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using WUApiLib; // 参照から「COM」より「WUAPI 2.0 Type Library」追加
در زیر کدی که KB نصب شده را جستجو و فهرست می کند، قرار داده شده است.
C #
this.ResultTextBox.Text = "";
// アップデートセッション 作成
UpdateSession us = new UpdateSession();
// アップデート検索インスタンス作成
IUpdateSearcher searcher = us.CreateUpdateSearcher();
// 「インストールされているもの」「ソフトウェア」で検索し、結果を取得
ISearchResult result = searcher.Search("IsInstalled=1 and Type='Software'");
StringBuilder builder = new StringBuilder();
// アップデート一覧からタイトル一覧を取得する。
foreach (IUpdate u in result.Updates)
{
builder.AppendLine("[" + u.Title + "]");
}
builder.AppendLine();
// アップデート一覧から KB の番号だけ取得する。
foreach (IUpdate u in result.Updates)
{
foreach (string str in u.KBArticleIDs)
{
builder.AppendLine(str);
}
}
// 取得した KB 一覧をセット
this.ResultTextBox.Text = builder.ToString();
VB.NET
Me.ResultTextBox.Text = ""
' アップデートセッション 作成
Dim us As New UpdateSession()
' アップデート検索インスタンス作成
Dim searcher As IUpdateSearcher = us.CreateUpdateSearcher()
' 「インストールされているもの」「ソフトウェア」で検索し、結果を取得
Dim result As ISearchResult = searcher.Search("IsInstalled=1 and Type='Software'")
Dim builder As New System.Text.StringBuilder()
' アップデート一覧からタイトル一覧を取得する。
For Each u As IUpdate In result.Updates
builder.AppendLine("[" + u.Title + "]")
Next
builder.AppendLine()
' アップデート一覧から KB の番号だけ取得する。
For Each u As IUpdate In result.Updates
For Each str As String In u.KBArticleIDs
builder.AppendLine(str)
Next
Next
' 取得した KB 一覧をセット
Me.ResultTextBox.Text = builder.ToString()
محتوا به همان اندازه که اظهار نظر شده است.
IUpdateSearcher.Search
شما می توانید آنچه را که توسط رشته ای که به عنوان آر استدلال روش مشخص می کنید تغییر دهید. برای کسب اطلاعات بیشتر به IUpdateSearcher::Search Method نگاه کنید.