Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Помогите с реестром.


Автор: InseR 4.8.2007, 15:22
Плиз напишите код для события OnCreate,чтобы по включению программы она записывалась в реестр и запускалась вместе с системой...

Автор: aktuba 4.8.2007, 15:55
Цитата

Плиз напишите код для события OnCreate,чтобы по включению программы она записывалась в реестр и запускалась вместе с системой...


Приплыли... А сам подумать или поискать - никак???

Автор: ALeXandrK 4.8.2007, 16:08
Из http://drkb.ru/:
Код

procedure SetAutorun(aProgTitle,aCmdLine: string; aRunOnce: boolean ); 

var 

hKey: string; 

hReg: TRegIniFile; 

begin 

if aRunOnce then hKey := 'Once' 

else 

   hKey := ''; 

 

hReg := TRegIniFile.Create( '' ); 

hReg.RootKey := HKEY_LOCAL_MACHINE; 

hReg.WriteString('Software\Microsoft\Windows\CurrentVersion\Run' 

                 + hKey + #0, 

                 aProgTitle, 

                 aCmdLine ); 

hReg.destroy; 

end;


Код

{ 

There's a RunOnce key in the registry. 

When a user logs on, the programs in the run-once list are run just once, 

and then the entries will be removed. 

The "runonce" key is normally used by setup programs to install 

software after a machine has been rebooted. 

}

 

{ 

Jede Anwendung, die im Schlьssel RunOnce aufgefьhrt ist, wird 

beim nдchsten Windowsstart ausgefьhrt und anschlieЯend wieder 

aus der Registry entfernt. Betrifft Anwendungen, die nur einmal 

mit Windows gestartet werden sollen. Normalerweise wird dieser Schlьssel 

von Setup Programmen genutzt, um nach einem Neustart mit der Installation 

fortzufahren. 

}

 

 

// Add the application to the registry... 

// Anwendung in die Registry aufnehmen... 

 

procedure DoAppToRunOnce(RunName, AppName: string);

var

  Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  with Reg do

  begin

    RootKey := HKEY_LOCAL_MACHINE;

    OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', True);

    WriteString(RunName, AppName);

    CloseKey;

    Free;

  end;

end;

 

// Check if the application is in the registry... 

// Prьfen, ob Anwendung in der Registry vorhanden ist... 

 

function IsAppInRunOnce(RunName: string): Boolean;

var

  Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  with Reg do

  begin

    RootKey := HKEY_LOCAL_MACHINE;

    OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', False);

    Result := ValueExists(RunName);

    CloseKey;

    Free;

  end;

end;

 

// Remove the application from the registry... 

// Anwendung aus der Registry entfernen... 

 

procedure DelAppFromRunOnce(RunName: string);

var

  Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  with Reg do

  begin

    RootKey := HKEY_LOCAL_MACHINE;

    OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', True);

    if ValueExists(RunName) then DeleteValue(RunName);

    CloseKey;

    Free;

  end;

end;

 

{ 

Applications under the key "Run" will be executed 

each time the user logs on. 

{ 

 

{ 

Jede Anwendung, die im Schlьssel Run aufgefьhrt ist, wird beim 

jedem Windowsstart ausgefьhrt. Betrifft Anwendungen, die immer 

mit Windows gestartet werden sollen... 

}

 

 

// Add the application to the registry... 

// Anwendung in die Registry aufnehmen... 

 

procedure DoAppToRun(RunName, AppName: string);

var

  Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  with Reg do

  begin

    RootKey := HKEY_LOCAL_MACHINE;

    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);

    WriteString(RunName, AppName);

    CloseKey;

    Free;

  end;

end;

 

// Check if the application is in the registry... 

// Prьfen, ob Anwendung in der Registry vorhanden ist... 

 

function IsAppInRun(RunName: string): Boolean;

var

  Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  with Reg do

  begin

    RootKey := HKEY_LOCAL_MACHINE;

    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);

    Result := ValueExists(RunName);

    CloseKey;

    Free;

  end;

end;

 

// Remove the application from the registry... 

// Anwendung aus der Registry entfernen... 

 

procedure DelAppFromRun(RunName: string);

var

  Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  with Reg do

  begin

    RootKey := HKEY_LOCAL_MACHINE;

    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);

    if ValueExists(RunName) then DeleteValue(RunName);

    CloseKey;

    Free;

  end;

end;

 

// Examples, Beispiele 

 

// Add app, Anwendung aufnehmen... 

DoAppToRun('Programm', 'C:\Programs\XYZ\Program.exe');

 

// Is app there ? Ist Anwendung vorhanden? 

if IsAppInRun('Programm') then...

 

// Remove app, Anwendung entfernen 

DelAppFromRun('Programm');



А вообще конечно очень нехорошо задавать такие вопросы.
Форум - это не бесплатная рабочая сила, а помощь в ситуациях, когда самому ну никак
не разобраться или совет нужен опытных людей.

В следующий раз сразу пиши... "Плиз напишите мне программу...". smile 

Тема называется: "Помогите с регистром" - причем тут регистр, тему переименуй smile 

Автор: EvilsInterrupt 4.8.2007, 16:46
InseR,

ЗЫ: в интернете есть зае..., сорри кульный мануал: "Как правильно задававать вопрос", я его раз в месяц перечитываю. В итоге прихожу к тому, что либо вопросы отпадают сами, либо быстрее выражаю суть, из-за чего люди быстрее помогают в деле ;)

Автор: Sanchezzz 4.8.2007, 20:16
в uses inifiles;

по событию на создание формы.
Код

win:= tinifile.create('win.ini');
win.readstring ('windows','run',pres); //Поглядим, что там из win.ini запускается 
if pres<> Application.ExeName then//Если не мы, то... :crazy 
win.writestring('windows','run',application.exename); //Теперь будем мы  :search 
win.free;


совет скачай DBK b DelphiWorld  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)