热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WMI入门学习实例

【实例简介】ShouldSerialize函数是VS属性浏览器用来检查某个特定属性是否必须序列化的函数。为所有ValueType属性(类型为Int32、BOOL等的属性ÿ

【实例简介】

// ShouldSerialize 函数是 VS 属性浏览器用来检查某个特定属性是否必须序列化的函数。为所有 ValueType 属性(类型为 Int32、BOOL 等的属性,不能设置为空)添加这些函数。这些函数使用 IsNull 函数。在属性的 TypeConverter 实现中也使用这些函数来检查属性的 NULL 值,以便在 Visual Studio 中进行拖放操作时可以在属性浏览器中显示空值。
// 函数 IsNull() 用于检查属性是否为 NULL。
// 为可为空值的读/写属性添加 Reset 函数。VS 设计器在属性浏览器中使用这些函数将属性设置为 NULL。
// 添加到 WMI 属性的类的每个属性都具有特性集,用于定义它在 Visual Studio 设计器中的行为,并定义要使用的 TypeConverter。
// 日期时间转换函数 ToDateTime 和 ToDmtfDateTime 添加到类,以便将 DMTF 日期时间转换为 System.DateTime (或相反)。
// 为 WMI 类生成的早期绑定类。Win32_Process

文件:590m.com/f/25127180-493984408-b2e131(访问密码:551685)

【实例截图】

在这里插入图片描述
【核心代码】

static void Main(string[] args)
{
ConnectionOptions options = new ConnectionOptions();
options.Username = “Administrator”;
options.Password = “demo”;
ManagementScope scope = new ManagementScope(@"\192.168.1.11\root\cimv2", options);
{
scope.Connect();

//Demo for Win32_ProcessWmiProcess proc = new WmiProcess(scope);proc.Get();//Demo for ocs user's contact managermentOcsUsers u = new OcsUsers(scope);string InstanceID = u.GetUserId("sip:ocs@kk.com");uint groupId = u.GetGroupId("~");uint[] gids = new uint[] { groupId };u.DeleteAllContacts();u.AddContact("sip:dd@kk.com", "dd", gids);u.AddContact("sip:gg@kk.com", "gg", gids);
}

}

以下内容无关:

-------------------------------------------分割线---------------------------------------------

因为项目需要通过word模板替换字符串 ,来让用户下载word, 就在网上找了找word查找替换字符串的库或方法,基本上不是收费,就是无实现,或者方法局限性太大

.docx 是通过xml来存储文字和其他信息的, 有时候一个单词表面上看到的是一个元素 ,其实内部分裂成了好多元素, 就像下面代码 ,在word文档中我们看到的是 abcdefgh,其实是这样存储的

ab

c

d

e

fgh
  

我们要查找替换上面代码中的 bcdef 就不是简单的string.replace 了,网上找到了几个方法都要求 bcdef在一个里面或者一个里面才可以,局限性比较大。索性就自己写了一个方法

//用于存放多个Text相加之后的尾部 和 替换字符串头部重叠的Text集合static List list = new List();private static void Replace(OpenXmlElement parent, string old, string value){foreach (var child in parent.ChildElements){//如果是新的段落 清空listif (child is Paragraph)list.Clear();//如果是Textif (child is Text t){//Text自身包含old字符串,直接替换if (t.Text.Contains(old))t.Text = t.Text.Replace(old, value);//把自身先放入listlist.Add(t);//list 中Text元素相加的stringvar text = string.Join("", list.Select(m => m.Text));//是否包含旧字符串var index = text.IndexOf(old);//Text和前面的Text元素(一个或多个)相加包含old字符串if (index >= 0){//list第一个元素 删除旧字符串的的部分 并加上新字符串list[0].Text = text.Substring(0, index) + value;//list最后一个元素 删除旧字符串的的部分t.Text = text.Substring(index + old.Length);//list其他元素 全部替换为空for (int i = 1; i ();//list中的Text相加 结尾和old字符串有重合的的部分, 所引用的list 加入 newlistfor (int i = 0; i m.Text)).Length >= str.Length)break;newList.Insert(0, list[list.Count - i - 1]);}//list 变成新listlist = newList;}//递归调用Replace(child, old, value);}}//获取前一个字符结尾和后一个字符串开头重合的部分public static string GetSamePart(string text, string tempalte){for (int i = 1; i

使用方法如下

using var fs = File.OpenRead("xx.docx");var ms = new MemoryStream();await fs.CopyToAsync(ms);using WordprocessingDocument doc = WordprocessingDocument.Open(ms, true);Body body = doc.MainDocumentPart.Document.Body;Replace(body, "bcdef", "1234");


推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 本文提供了多种方法来计算给定年份和月份的起始日和结束日,并进一步探讨了如何根据年、月、周获取特定周的起始日和结束日。 ... [详细]
  • ML学习笔记20210824分类算法模型选择与调优
    3.模型选择和调优3.1交叉验证定义目的为了让模型得精度更加可信3.2超参数搜索GridSearch对K值进行选择。k[1,2,3,4,5,6]循环遍历搜索。API参数1& ... [详细]
  • 深入理解String.Format()方法的应用
    在.NET框架中,String.Format()方法是一种非常实用的工具,它能够帮助开发者以灵活多样的方式格式化字符串。本文将通过一个具体的示例,详细介绍如何利用String.Format()方法处理数值、日期时间和枚举类型的格式化。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • andr ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • sqlserver动态分区方案例子
    sqlserver动态分区方案例子当我们存储的数据量比较大时,比如超过千万,上亿级别时单纯的使用索引可能效果不明显了,此时我们可以考虑采 ... [详细]
author-avatar
陈陈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有