5,402
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, StrUtils, Registry;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
mstr: string;
mbuf: array of byte;
mcount,i: integer;
Reg: TRegistry;
begin
mstr := 'bf,31,36,30,98,14,02,92,61,41,ae,ac,c3,a9,b2,9a,19,96,a8,1c,e3,'+
'08,03,c5,7f,e9,36,6e,80,3a,30,3a,c0,3b,1e,a3,6a,e4,41,84,87,54,d8,67,ed,8e,'+
'34,c4,b1,7d,32,93,97,2b,f1,0f,93,71,38,1c,8e,47,23,11,08,a6,02,80,3f,9f,cf,'+
'e7,f3,f9,f1,be,df,ef,77,3b,1d,8e,46,f7,50,27,93,c9,e4,71,38,1c,c9,bb,7a,cb,'+
'ba,37,43,c9,fc,51,02,a8,bc,36,ce,01,17,23,b9,e9,d4,31,88,fc,02,e6,4d,95,9f,'+
'c3,02,b5,cd,c2,51,cc,c6,a8,79,fe,ff,ff,ff,fe,ff,ff,ff,eb,9e,41,84,89,9b,2f,'+
'7b,6a,0f,10,35,e7,ea,db,76,e3,a0,ae,e8,a6,1c,77,f2,76,48,ac,3c,f5,30,90,8e,'+
'90,8f,9f,bb,c3,83,a9,bf,a2,a7,64,f4,b3,fd,98,79,fb,14,c8,f4,dc,88,a8,ae,59,'+
'64,74,f0,55,1a,47,62,18,96,0f,6c,e8,c1,44,b6,67,aa,28,08,02,09,38,35,35,fd,'+
'41,39,14,21,fd,6d,25,77,31,f3,6d,8e,60,6e,4e,02,41,28,cb,dd,0c,6a,c7,93,df,'+
'db,8a,0f,a8,e5,5a,3b,dd,2f,d9,23,c1,81,74,82,d0,ae,a7,76,da,b2,86,9a,95,e7,'+
'97,f0,c9,6c,df,07,f9,e7,c0,7b,d9,a1,3d,57,a5,e3,39,0d,78,55,fc,88,40,5f,cc,'+
'b4,75,a9,4b,9d,59,fb,e6,fb,68,28,19,f0,72,2c,f8,13,2e,61,09,6a,62,e6,51,81,'+
'91,61,32,f5,71,1b,af,d0,3d,5d,ab,86,10,cf,6e,02,d9,d8,3e,2e,0e,23,bd,16,f2,'+
'74,58,75,01,a2,8b,69,0b,a6,6a,8d,c6,da,7b,e3,fa,5f,c3,fa,29,db,a4,6e,0a,95,'+
'21,4a,d6,d6,1d,00,a9,48,e0,7b,71,52';
mstr := mstr + ',';
mcount := (Length(mstr) div 3);
SetLength(mbuf, mcount);
for i:=0 to mcount-1 do
begin
mbuf[i] := StrToInt('$'+LeftBStr(mstr,2));
Delete(mstr,1,3);
end;
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('SOFTWARE\test', True) then
begin
Reg.WriteBinaryData('key',mbuf[0],mcount);
Reg.CloseKey;
end;
Reg.Free;
end;
end.
因需寫一支程式,通過修改註冊表來控制電腦的電源管理,需到如下問題:
我之前有寫過類似的,這樣可以實現
getmem(buffer,4);
hextobin(pchar('01000000'),pchar(buffer),4);
reg.WriteBinaryData('NTAuthEnabled',buffer[0],4);
但是像下面這麽多的字串,就執行失敗,請教有何方法可以解決,感謝:
請問如何通過delphi寫入如下資料至註冊表中,謝謝:
[HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicy]
"Policies"=hex:01,00,00,00,00,00,00,00,03,00,00,00,10,00,00,00,00,00,00,00,03,\
00,00,00,10,00,00,00,02,00,00,00,03,00,00,00,00,00,00,00,02,00,00,00,03,00,\
00,00,00,00,00,00,02,00,00,00,01,00,00,00,00,00,00,00,02,00,00,00,01,00,00,\
00,00,00,00,00,01,00,00,00,03,00,00,00,02,00,00,00,04,00,00,c0,01,00,00,00,\
02,00,00,00,01,00,00,00,0a,00,00,00,00,00,00,00,03,00,00,00,01,00,01,00,01,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,03,00,00,00,00,\
00,16,00,00,00
問題己解決,見如下code:
reg.rootkey:=HKEY_CURRENT_USER;
reg.OpenKey('\Control Panel\PowerCfg\GlobalPowerPolicy',true);
getmem(buffer,176);
hextobin(pchar('010000000000000003000000100000000000000003'+
'00000010000000020000000300000000000000020000000300'+
'00000000000002000000010000000000000002000000010000'+
'0000000000010000000300000002000000040000c001000000'+
'02000000010000000a00000000000000030000000100010001'+
'00000000000000000000000000000000000000000002000000'+
'000000000000000000000000000000000000000003000000000016000000'),pchar(buffer),176);
reg.WriteBinaryData('Policies',buffer[0],176);
"key"=hex:bf,31,36,30,98,14,02,92,61,41,ae,ac,c3,a9,b2,9a,19,96,a8,1c,e3,\
08,03,c5,7f,e9,36,6e,80,3a,30,3a,c0,3b,1e,a3,6a,e4,41,84,87,54,d8,67,ed,8e,\
34,c4,b1,7d,32,93,97,2b,f1,0f,93,71,38,1c,8e,47,23,11,08,a6,02,80,3f,9f,cf,\
e7,f3,f9,f1,be,df,ef,77,3b,1d,8e,46,f7,50,27,93,c9,e4,71,38,1c,c9,bb,7a,cb,\
ba,37,43,c9,fc,51,02,a8,bc,36,ce,01,17,23,b9,e9,d4,31,88,fc,02,e6,4d,95,9f,\
c3,02,b5,cd,c2,51,cc,c6,a8,79,fe,ff,ff,ff,fe,ff,ff,ff,eb,9e,41,84,89,9b,2f,\
7b,6a,0f,10,35,e7,ea,db,76,e3,a0,ae,e8,a6,1c,77,f2,76,48,ac,3c,f5,30,90,8e,\
90,8f,9f,bb,c3,83,a9,bf,a2,a7,64,f4,b3,fd,98,79,fb,14,c8,f4,dc,88,a8,ae,59,\
64,74,f0,55,1a,47,62,18,96,0f,6c,e8,c1,44,b6,67,aa,28,08,02,09,38,35,35,fd,\
41,39,14,21,fd,6d,25,77,31,f3,6d,8e,60,6e,4e,02,41,28,cb,dd,0c,6a,c7,93,df,\
db,8a,0f,a8,e5,5a,3b,dd,2f,d9,23,c1,81,74,82,d0,ae,a7,76,da,b2,86,9a,95,e7,\
97,f0,c9,6c,df,07,f9,e7,c0,7b,d9,a1,3d,57,a5,e3,39,0d,78,55,fc,88,40,5f,cc,\
b4,75,a9,4b,9d,59,fb,e6,fb,68,28,19,f0,72,2c,f8,13,2e,61,09,6a,62,e6,51,81,\
91,61,32,f5,71,1b,af,d0,3d,5d,ab,86,10,cf,6e,02,d9,d8,3e,2e,0e,23,bd,16,f2,\
74,58,75,01,a2,8b,69,0b,a6,6a,8d,c6,da,7b,e3,fa,5f,c3,fa,29,db,a4,6e,0a,95,\
21,4a,d6,d6,1d,00,a9,48,e0,7b,71,52