I am using the following code to try to make a RunOnce entry:
program RunOnceTest;
{$APPTYPE CONSOLE}
uses
SysUtils, Registry, Windows;
var
R: TRegistry;
begin
try
WriteLn('Testing RunOnStartup.......');
R := TRegistry.Create;
try
R.RootKey := HKEY_LOCAL_MACHINE;
R.LazyWrite := False;
R.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', True) ;
R.WriteString('this', 'that') ;
R.CloseKey;
finally
R.free;
end;
WriteLn('Test Finished');
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
I run the app, and it executes.
However, there is no entry at:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
in my registry. Do I need administrator privileges? What else do I need to do?
ADDED: I should explain better and really ask a question about what I am trying to do. I am trying to get my app to run automatically at startup. Lot's of applications do this without appearing to require admin privileges. What is the normal way to do this?