08.01.2018, 10:07
|
|
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
Вот на х64 работает, на х32 нет возможности проверить - на виртуалке только WindowsXP, а там и не будет работать:
Код:
function PowerEnumerate(RootPowerKey: HKEY;
SchemeGuid: PGUID; SubGroupOfPowerSettingsGuid: PGUID;
AccessFlags: DWORD; Index: ULONG;
Buffer: Pointer; var BufferSize: DWORD): DWORD;
stdcall; external 'powrprof.dll';
function PowerReadFriendlyName(
RootPowerKey: HKEY;
SchemeGuid: PGUID; SubGroupOfPowerSettingsGuid: PGUID;
PowerSettingGuid: PGUID;
Buffer: Pointer; var BufferSize: DWORD
): DWORD; stdcall; external 'powrprof.dll';
const
ACCESS_SCHEME = 16;
procedure TForm1.FormCreate(Sender: TObject);
var
Buffer: TGUID;
BufferSize: DWORD;
LIndex: ULONG;
LPowerEnumerate: DWORD;
BufferName: array [0..$FF] of Char;
begin
LIndex:=0;
repeat
BufferSize:=SizeOf(TGUID);
LPowerEnumerate:=PowerEnumerate(0, nil, nil, ACCESS_SCHEME,
LIndex, @Buffer, BufferSize);
if LPowerEnumerate=ERROR_SUCCESS then
begin
Memo1.Lines.Add(GUIDToString(Buffer));
BufferSize:=Length(BufferName);
if PowerReadFriendlyName(0, @Buffer, nil, nil,
@BufferName[0], BufferSize)<>ERROR_SUCCESS then RaiseLastOSError;
Memo1.Lines.Add(BufferName);
end;
Inc(LIndex);
until LPowerEnumerate<>ERROR_SUCCESS;
end;
Результат:
Цитата:
{381B4222-F694-41F0-9685-FF5BB260DF2E}
Сбалансированная
{8C5E7FDA-E8BF-4A96-9A85-A6E23A8C635C}
Высокая производительность
{A1841308-3541-4FAB-BC81-F71556F20B4A}
Экономия энергии
|
__________________
Пишу программы за еду.
__________________
|