我有一个我正在创建的程序,它集成了一个功能,可以告诉您当前的电源方案,并可以选择设置预配置的.pow文件。如果我在命令提示符下使用powercfg命令并且已经使用
将其集成到程序中,这很容易做到Process.start"cmd", "/k powercfg... etc. etc."
我宁愿能够使用Windows API来调用此设置,这样每次我想更新此设置时都不必运行命令窗口,这样我就可以保持输出目前的方案动态。
据我所知,VB.net没有以这种方式直接使用Windows API的能力。做一些研究我发现C ++可以。我想知道是否有办法创建一个DLL文件,我可以使用C ++调用我的VB.net脚本。或者,如果有一个更容易的解决方案,我很想知道。
答案 0 :(得分:1)
您可以选择几种方式。我认为在VB.NET项目中使用WMI可能是最好的。您需要添加对System.Management和System.Management.Instrumentation命名空间的引用。有关使用代码的详细信息,请参阅MSDN上的此页:
https://msdn.microsoft.com/en-us/library/ms257340(v=vs.80).aspx
虽然以下是C#示例,但它应该为您提供有关如何在.NET中针对WMI编写查询的好主意,并且它也特定于您所考虑的目标。
Is there any API function to get the battery level in Windows Desktop Apps?
希望这有帮助。
答案 1 :(得分:1)
我得知这一切都要归功于约书亚。获得当前有效的计划...
Try
Dim searcher As New ManagementObjectSearcher(
"root\CIMV2\power",
"SELECT * FROM Win32_PowerPlan WHERE IsActive = 'True'")
For Each queryObj As ManagementObject In searcher.Get()
TextBox1.Text = queryObj("ElementName")
Next