怎么用c++调用wmi的方法,获得vista的启动项

zgcbj 2013-06-17 01:58:41
怎么用c++ 调用wmi的方法?获取win7和vista的启动项。已知:wmi的bcdobject类,用getelement
谢谢
相关c#代码如下
 public void LoadAllOS()
{
List<string> lstOsName = new List<string>();
ConnectionOptions connectionOptions = new ConnectionOptions();
connectionOptions.Impersonation = ImpersonationLevel.Impersonate;
connectionOptions.EnablePrivileges = true;

ManagementScope managementScope = new ManagementScope(@"root\WMI", connectionOptions);

// SYSTEM STORE GUID = {9dea862c-5cdd-4e70-acc1-f32b344d4795}
systemObject = new BcdObject(managementScope, "{9dea862c-5cdd-4e70-acc1-f32b344d4795}", "");

ManagementBaseObject mboOut;
bool success = systemObject.GetElement((uint)BCDConstants.BcdBootMgrElementTypes.BcdBootMgrObjectList_DisplayOrder, out mboOut);

if (success)
{
string[] osIdList = (string[])mboOut.GetPropertyValue("Ids");
foreach (string osGuid in osIdList)
{
BcdObject osObj = new BcdObject(managementScope, osGuid, "");
success = osObj.GetElement((uint)BCDConstants.BcdLibraryElementTypes.BcdLibraryString_Description, out mboOut);

if (success)
{
OS myOS = new OS();
myOS.Name = mboOut.GetPropertyValue("String").ToString();
myOS.GUID = osGuid;
myOS.osObj = osObj;
// lstOS.Items.Add(myOS);
lstOsName.Add(myOS.Name.ToString());
Console.WriteLine(myOS.Name);
}
}
strOsName = lstOsName.ToArray();
}
...全文
425 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wokaodouyoule 2013-06-21
  • 打赏
  • 举报
回复
用com调用太麻烦。 步骤如下: OpenBcdStore OpenBcdObject GetElement传参数 0x24000001 根据返回的Guid,再用OpenBcdObject 然后GetElement,传参数0x12000004 参考资料BcdElement BcdObject BcdStore
oyljerry 2013-06-18
  • 打赏
  • 举报
回复
VC一样的支持WMI,把你C#中的namespace,classname,function设置过去就差不多了
zgcbj 2013-06-18
  • 打赏
  • 举报
回复
还是0回复?高手在哪里?
「LLM那些事」系列第 4 篇《上下文窗口的边界》,文章连接:https://blog.csdn.net/houwenjin/article/details/163999753。 演示什么:在「预测」Sheet 的黄色格子里输入一句话(默认「来泡一杯」),四个「模型」——分别只统计最后 1 / 2 / 3 / 4 个字的 n-gram 查表——同时预测下一个字。同一个输入,看的上下文越长,候选越少、预测越确定: ┌────────────────┬──────────┬───────────────┬──────┐ │ 只看最后几个字 │ 用的前缀 │ 候选下一字数 │ 预测 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 1 个 │ 杯 │ 3(茶/子/水) │ 模糊 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 2 个 │ 一杯 │ 2(茶/水) │ 收窄 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 3 个 │ 泡一杯 │ 1(茶) │ 确定 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 4 个 │ 来泡一杯 │ 1(茶) │ 确定 │ └────────────────┴──────────┴───────────────┴──────┘

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧