WUA kasutamine Windowsi värskenduste installioleku määramiseks
Kokkuvõte
WUA abil saate otsida värskendusi (KB-des), mis on installitud praegu kasutatavasse Windowsi.
Töökeskkond
Toimingu kontrollimise keskkond
Windowsi versioon |
|
.NET Frameworki versioon |
|
Nõutavad süsteeminõuded
Windowsi versioon |
|
.NET Frameworki versioon |
|
aine
Selle proovi kohta
Selle proovi eesmärk on määrata Windowsi installitud KB ja eesmärk on peaaegu sama, mis "Kasutage WMI-d Windowsi värskenduste installioleku määramiseks". Kuid seda proovi kontrollitakse WMI asemel "WUA" abil.
KB kirjeldust on kirjeldatud jaotises "Kasutage WMI-d, et teada saada, kuidas Windowsi värskendused on installitud", nii et vaadake seal.
Mis on WUA?
WUA tähistab "Windows Update Agent" ja on COM-liideste komplekt, mis võimaldab juurdepääsu Windows Update'ile ja Windows Server Update Services'ile (WSUS). Selle abil saate määrata, milline KB on Windowsi installitud.
WUA ja WUA-ga programmeerimise üksikasjaliku selgituse saamiseks vaadake järgmisi linke:
- Windows Update Agent API
- Kas on võimalik saada loend kõigist minu arvutisse lisatud värskendustest?
- IUpdateSearcher::Otsingumeetod
Programmid, mis otsivad KB installimise olekut
Viidete lisamine (C#)
WUA kasutamiseks peate viitama WUAPI 2.0 tüüpi teegile COM-ist.
C# projektide puhul paremklõpsake Solution Exploreris valikut Viited ja valige Lisa viited.
Kui kuvatakse dialoog Viite lisamine, valige vahekaardil COM WUAPI 2.0 Type Library (Teek) ja klõpsake nuppu OK.
OK, kui lahenduseuurija viiteseadetele lisatakse "WUApiLib".
Viite lisamine (VB.NET)
VB.NET puhul paremklõpsake Solution Exploreris valikut Minu projekt ja valige Käsk Ava.
Kui atribuudid avanevad, klõpsake vasakul vahekaardil "Sirvi", klõpsake paremal asuvat nuppu Lisa. Nagu C#- s, kuvatakse dialoog Lisa viide, nii et valige vahekaardilt "COM" "WUAPI 2.0 Type Library" ja klõpsake nuppu OK.
Kui naasete eelmisele ekraanile ja lisate keskmisesse loendisse "WUAPI 2.0 Type Library", on see OK.
Samuti kontrollime allolevast loendist "WUApiLib", et jätta programmi nimeruumi kirjeldus välja.
Stseen
Selles näidises kasutatav ekraan on lihtne ekraan, millel on käivitamisnupp KB installioleku kontrollimiseks ja tekstikast, mis kuvab tulemused.
Ma teen seda WPF-is, kuid sama ekraan on konfigureeritav Windows Formis.
programm
C UpdateSession
# lisab koodi algusesse ""using WUApiLib;
, et vähendada klasside ja muude nimeruumide kirjeldust. VB.NET määrasite nimeruumi importimise projekti atribuutidesse, nii et te ei pea midagi erilist kirjutama, kuid kui te pole seda teinud, peate lisama ".Imports WUApiLib
* Nii C# kui ka VB.NET puhul, kui kõik klassinimed on kirjutatud nimeruumist, näiteks ",WUApiLib.UpdateSession
pole ülaltoodud spetsifikatsioon vajalik.
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」追加
Allpool on kood, mis otsib ja loetleb installitud 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()
Sisu on nagu kommenteeritud.
IUpdateSearcher.Search
Saate muuta seda, mida saate meetodi argumendiks määratud stringi abil. Lisateavet leiate teemast IUpdateSearcher::Otsingumeetod.