Solved

How can I show the value of a DWORD

Posted on 2009-07-11
14
351 Views
Last Modified: 2012-05-07
when u go into registry and right click a reg dword file and choose modify i can see the value data, how do check that info using delphi to say if for example DWORD value is 1 it will come back and say yes  and if it is 0 it will no when the user presses a button on my delphi application?
0
Comment
Question by:SonicM3
  • 7
  • 7
14 Comments
 
LVL 6

Expert Comment

by:FactorB
ID: 24830357
Something like this

Uses
Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
reg:tregistry;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\',false);
if reg.ValueExists('Some_Value') then begin
if reg.ReadString ('Some_Value')='1' then Button1.Caption:='Yes';
if reg.ReadString ('Some_Value')='0' then Button1.Caption:='No';
end;
finally
reg.Free;
end;
0
 
LVL 6

Expert Comment

by:FactorB
ID: 24830365
Shortage of ends:) put above one more ... end;
0
 

Author Comment

by:SonicM3
ID: 24830394
ah thanks man, i am so close can you just finish this off.

i want to go to ... currentversion/polices/system/enablelua   and show if 1 is on that yeh admin rights limited access and if its 0 the admin rights have full access
just nearly got it sorted.
how do i edit the code to do this?

0
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 

Author Comment

by:SonicM3
ID: 24830403
edit:

just to confirm this is a dword and here is the location and valves.

test5.jpg
0
 
LVL 6

Expert Comment

by:FactorB
ID: 24830408
Uses
Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
reg:tregistry;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\polices\system\',false);
if reg.ValueExists('enablelua') then begin
if reg.ReadString ('enablelua')='1' then Button1.Caption:='Yes';
if reg.ReadString ('enablelua')='0' then Button1.Caption:='No';
end;
finally
reg.Free;
end;
end;
0
 

Author Comment

by:SonicM3
ID: 24830414
This works fine for strings but does not seem to work for DWORD.
0
 
LVL 6

Accepted Solution

by:
FactorB earned 500 total points
ID: 24830445
Sorry typo polices instead of policies and I should use integer for DWord

procedure TForm1.Button1Click(Sender: TObject);
var
reg:tregistry;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\',false);
if reg.ValueExists('EnableLUA') then begin
if reg.ReadInteger ('EnableLUA')=1 then Button1.Caption:='Yes';
if reg.ReadInteger ('EnableLUA')=0 then Button1.Caption:='No';
end;
finally
reg.Free;
end;
end;
0
 

Author Comment

by:SonicM3
ID: 24830477
well done mate, top marks!  
I will award you points for that but can i ask a quick question.

at the moment i can read fine and i am an admin on limted access basically with lua on, how can i change the 1 to a 0 to turn lua off and give me fulll access.
Like i say point rewarded anyways for the other answer excellent!
0
 
LVL 6

Expert Comment

by:FactorB
ID: 24830500
You are more than welcome to ask, add

reg.WriteInteger('EnableLUA',0);

to the code

procedure TForm1.Button1Click(Sender: TObject);
var
reg:tregistry;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\',false);
if reg.ValueExists('EnableLUA') then begin
reg.WriteInteger('EnableLUA',0);
if reg.ReadInteger ('EnableLUA')=1 then Button1.Caption:='Yes';
if reg.ReadInteger ('EnableLUA')=0 then Button1.Caption:='No';
end;
finally
reg.Free;
end;
end;

Regards,
B.
0
 

Author Comment

by:SonicM3
ID: 24830555
super!  I will add this after lunch.
thanks again
0
 

Author Comment

by:SonicM3
ID: 24830777
can you help me figure out why the things dont show?
like.. when i select the button it shows label1 but nothing else, when im logged in as (1) and when im logged in as (0) nothing works..

its like,none of the commands work for the options switch.


procedure TForm1.Button1Click(Sender: TObject);

  var
reg:tregistry;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\',false);
if reg.ValueExists('EnableLUA') then begin
if reg.ReadInteger ('EnableLUA')=0
then
label1.show;
button2.show;
button3.show;


if reg.ReadInteger ('EnableLUA')=1 then
 label2.Show;
 button4.show;
 button5.show;

     end;
finally
reg.Free;
end;
end;
0
 
LVL 6

Expert Comment

by:FactorB
ID: 24830798
Try this:

procedure TForm1.Button1Click(Sender: TObject);

var
reg:tregistry;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\',false);
if reg.ValueExists('EnableLUA') then begin
 if reg.ReadInteger ('EnableLUA')=0 then begin
  label1.visible:=true;
  button2.visible:=true;
  button3.visible:=true;
 end;
 if reg.ReadInteger ('EnableLUA')=1 then begin
  label2.visible:=true;
  button4.visible:=true;
  button5.visible:=true;
 end;
end;
finally
reg.Free;
end;
end;
0
 

Author Comment

by:SonicM3
ID: 24830865
ur the man!
cheers mate, i just really want to thank you for your help with this stuff. Thankyou so much. If i need another Q, ill make a new topic and give ya more points mate.

cheers
0
 
LVL 6

Expert Comment

by:FactorB
ID: 24830952
Don't worry I am glad that your code is working.
Just...keep typing. :)

Have a good day,
B.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question