首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我编程执行powercfg.exe时它的奇怪行为

当我编程执行powercfg.exe时它的奇怪行为
EN

Stack Overflow用户
提问于 2015-07-16 22:32:20
回答 1查看 179关注 0票数 1

要以编程方式设置显示亮度,我有两个选项:

  • 使用PowerWriteACValueIndexPowerWriteDCValueIndex API
  • 使用PowerCfg.exe

现在,我两者都试过了,都给了我同样的(奇怪的)结果。下面是我使用的代码:

代码语言:javascript
复制
                With psiInfo
                    .FileName = "powercfg"
                    .UseShellExecute = True
                    .WindowStyle = ProcessWindowStyle.Hidden
                    .Arguments = "-setacvalueindex " & guidCurScheme.ToString() & " " & SUBGROUP_GUID.GUID_VIDEO_SUBGROUP & " " & SETTING_GUID.GUID_DISPBRIGHTNESS & " " & psValue.ValueAC
                End With
                pProc = Process.Start(psiInfo)

其中:

代码语言:javascript
复制
Public Const GUID_VIDEO_SUBGROUP As String = "7516b95f-f776-4464-8c53-06167f40cc99"
Public Const GUID_DISPBRIGHTNESS As String = "aded5e82-b909-4619-9949-f5d71dac0bcb"

Public Structure POWERSETTING
    Public ValueAC As String
    Public ValueDC As String
End Structure

Dim psValue As POWERSETTING

guidCurSchemePowerGetActiveScheme API函数返回的有功功率方案的GUID。我用"-setdcvalueindex“对DC部分进行保护。

现在,奇怪的行为如下:

  1. 如果我在按钮单击处理程序事件中调用此代码,它将设置这些值,而不是“一般”屏幕亮度滑块(对此,显示亮度)。(请有人编辑帖子中的图片链接)
  2. 如果用户第二次单击该按钮,它只会应用该设置。
  3. 如果我将代码放在一个循环中,当用户单击该按钮时,它将运行两次,它仍将运行在(1)中。
  4. 如果我尝试运行相同的命令,但手动从命令行,它将运行良好的工作。

这完全出乎意料,我不知道我做错了什么。当我使用Windows中的PowerWriteACValueIndexPowerWriteDCValueIndex函数时,它提供了完全相同的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-17 06:48:51

也许,通过让应用程序将字符串复制到剪贴板上,可以再次检查参数的语法。有时候只是一个小小的错误给我毁了。

此外,我还会检查被调用的应用程序是来自syswow还是来自system32 (这取决于您如何编译应用程序),您也可以检查现有代码或查看所获得的错误输出。可以这样捕获错误输出:

代码语言:javascript
复制
Dim so As System.IO.StreamReader
        Dim se As System.IO.StreamReader
        se = myproc.StandardError
        so = myproc.StandardOutput
        myproc.WaitForExit()
        MsgBox(so.ReadToEnd & vbcrlf & se.ReadToEnd)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31465684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档