簡體   English   中英

使用C ++ winAPI設置Windows的高性能電源計划

[英]Setting On windows' High Performance power plan using C++ winAPI

我寫了一個代碼試圖通過c ++中的winAPI激活windows的高性能電源計划。 它似乎適用於所有電源計划(在我的終端,他們被稱為平衡,節電和戴爾),除了我感興趣的高性能計划! 我希望代碼能夠完成所有的電源計划,當找到高性能時,只需將其設置為然后退出。 如果有人可以幫助我,我會把我的代碼放在下面。 提前致謝!

#include <windows.h>
#include <powrprof.h>
#include <iostream>
#include "stdio.h"
#include <ntstatus.h>
#include <string>
#pragma comment(lib, "powrprof.lib")

using namespace std;


int main(int argc, char **argv) {


//////////////////  SET ACTIVE HIGH PERFORMANCE PLAN  ///////////////////


//Variables
UCHAR displayBuffer[64] = " ";
DWORD displayBufferSize = sizeof(displayBuffer);
GUID buffer;
DWORD bufferSize = sizeof(buffer);

//Go throught the machine's power plans and activate the high performance one
for(int index = 0; ; index++)
{

    if (ERROR_SUCCESS == PowerEnumerate(NULL,NULL,&GUID_VIDEO_SUBGROUP,ACCESS_SCHEME,index,(UCHAR*)&buffer,&bufferSize) )
    {
        if (ERROR_SUCCESS == PowerReadFriendlyName(NULL,&buffer,&NO_SUBGROUP_GUID,NULL,displayBuffer,&displayBufferSize) )
        {
            wprintf(L"%s\n", (wchar_t*)displayBuffer);


            if( 0 == wcscmp ( (wchar_t*)displayBuffer, L"High Performance" ) )
            {
                cout << "High Performance Plan Found!\n";
                if (ERROR_SUCCESS == PowerSetActiveScheme(NULL,&buffer) )
                {
                cout << "* Setting Active High Performance Power Plan *";
                //std::cin.get(); //pause
                break;
                }

            }
        }

    }
    else break;
}


return 0;

}

這可以更容易一些:

PowerSetActiveScheme(0, &GUID_MIN_POWER_SAVINGS);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM