小编Tod*_*bus的帖子

查询已安装的Windows更新的准确和本地化列表

如何使用C#查询安装在计算机上的Windows更新的准确本地化列表?

我将精确定义为匹配Windows 7中"程序和功能"下Microsoft的"View Installed Updates"对话框的"Microsoft Windows"类别中显示的内容.

如果我使用WUApi.DLL,信息将被返回本地化但我无法获得准确的列表.在WUApi.dll的情况下,一些修补程序丢失,如果已卸载更新,它仍会显示在由以下代码生成的列表中:

public static void GetWindowsUpdates() 
{ 
    var updateSession = new UpdateSession(); 
    var updateSearcher = updateSession.CreateUpdateSearcher(); 
    var count = updateSearcher.GetTotalHistoryCount(); 
    if (count == 0) 
        return; 

    var history = updateSearcher.QueryHistory(0, count); 
    for (int i = 0; i < count; i++) 
    { 
        if (history[i].ResultCode == OperationResultCode.orcSucceeded) 
        { 
            Console.WriteLine(history[i].Title); 

            if (history[i].Operation == UpdateOperation.uoUninstallation) 
            { 
                Console.WriteLine("!!! Operation == uninstall"); // This is never true 
            } 
        } 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

WUApi搜索方法也未使用以下代码提供准确的列表:

        WUApiLib.UpdateSessionClass session = new …
Run Code Online (Sandbox Code Playgroud)

c# wmi

7
推荐指数
1
解决办法
5658
查看次数

从托管代码中调用Hook LoadLibrary

我们想挂钩调用LoadLibrary以下载未找到的程序集.我们有一个处理托管程序集的ResolveAssembly处理程序,但我们还需要处理非托管程序集.

我们尝试通过"编写Microsoft Windows编程应用程序"中指定的技术重写import表来挂钩LoadLibrary调用,但是当我们调用WriteProcessMemory()时,我们得到一个权限被拒绝错误(998).(是的,我们正在使用提升的私人运行)

在加载CLR时是否有人成功重写了import表?谁能指出我正确的方向?

更新:我们解决了权限被拒绝的问题,但现在当我们迭代混合程序集的Imports表(托管+非托管)时,我们找到的唯一条目是mscoree.dll.有谁知道如何找到原生进口?(我们在C++/CLI中工作).

.net c++ loadlibrary

4
推荐指数
2
解决办法
3582
查看次数

标签 统计

.net ×1

c# ×1

c++ ×1

loadlibrary ×1

wmi ×1