Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.10.2011, 20:59
Gudzik11 Gudzik11 вне форума
Начинающий
 
Регистрация: 27.09.2011
Сообщения: 158
Репутация: 10
По умолчанию Настройки

с помощью CheckBox я могу управлять авто загрузкой своей программы
Но при закрытии программы положение CheckBox становится в изначальный
режим False
Та ка мне записать значение CheckBox в in файл чтоб при загрузке значение оставалось таким как я его задал в последний раз
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Registry;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    CheckBox1: TCheckBox;
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}
 



procedure TForm2.CheckBox1Click(Sender: TObject);
Var
  Reg: TRegistry;
begin
 if CheckBox1.Checked=False then

  begin
   Reg:=TRegistry.Create;
    Begin
     Reg.RootKey:=HKEY_LOCAL_MACHINE;
     Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',True);
     Reg.DeleteValue('PC Off');
     Reg.Free;
    End;
  end
     else if CheckBox1.Checked=True then

  Begin
       Reg:=TRegistry.Create;
    Begin
      Reg.RootKey:=HKEY_LOCAL_MACHINE;
      Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',True);
      Reg.WriteString('PC Off',Application.ExeName);
      Reg.Free;
     End;
  end;
  end;

end.
Ответить с цитированием
  #2  
Старый 02.10.2011, 21:12
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

А зачем? Проверяй наличие ключа в реестре, и его значение (при желании)...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 02.10.2011, 21:16
Gudzik11 Gudzik11 вне форума
Начинающий
 
Регистрация: 27.09.2011
Сообщения: 158
Репутация: 10
По умолчанию

а как проверить ?
Ответить с цитированием
  #4  
Старый 02.10.2011, 21:35
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Registry.KeyExists вроде. Глянь в справке.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 02.10.2011, 22:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Registry.KeyExists вроде. Глянь в справке.
В свое время написал такой вот модуль:
Код:
unit RegAutoRun;

interface

uses
  Windows, Classes, SysUtils, Registry, Forms;

type
  TRegRootKey = (rkUser, rkMachine);

function ReadRegAutoRun(ARegRootKey : TRegRootKey; AKeyName : String = ''; AParams : String = '') : Boolean;
procedure WriteRegAutoRun(ARegRootKey : TRegRootKey; AKeyName : String = ''; AParams : String = '');
procedure DeleteRegAutoRun(ARegRootKey : TRegRootKey; AKeyName : String = '');

implementation

const
  cAutoRunKey = 'Software\Microsoft\Windows\CurrentVersion\Run';

function ReadRegAutoRun(ARegRootKey : TRegRootKey; AKeyName : String = ''; AParams : String = '') : Boolean;
var
  R : TRegistry;
  AKeyValue : String;
  ANewKeyValue : String;
begin
  Result := False;
  R := TRegistry.Create;
  Try
    If ARegRootKey = rkUser
      Then R.RootKey := HKEY_CURRENT_USER
      Else R.RootKey := HKEY_LOCAL_MACHINE;
    If AKeyName = '' Then AKeyName := ExtractFileName(Application.ExeName);
    If R.OpenKeyReadOnly(cAutoRunKey) Then
      Begin
        If R.ValueExists(AKeyName) Then
          Begin
            AKeyValue := R.ReadString(AKeyName);
            ANewKeyValue := '"' + Application.ExeName + '"';
            If AParams <> '' Then ANewKeyValue := ANewKeyValue + ' ' + AParams;
            Result := AnsiCompareText(AKeyValue,ANewKeyValue) = 0;
          End;
        R.CloseKey;
      End;
  Finally
    R.Free;
  End;
end;

procedure WriteRegAutoRun(ARegRootKey : TRegRootKey; AKeyName : String = ''; AParams : String = '');
var
  R : TRegistry;
  AKeyValue : String;
begin
  R := TRegistry.Create;
  Try
    If ARegRootKey = rkUser
      Then R.RootKey := HKEY_CURRENT_USER
      Else R.RootKey := HKEY_LOCAL_MACHINE;
    If AKeyName = '' Then AKeyName := ExtractFileName(Application.ExeName);
    If R.OpenKey(cAutoRunKey,True) Then
      Begin
        AKeyValue := '"' + Application.ExeName + '"';
        If AParams <> '' Then AKeyValue := AKeyValue + ' ' + AParams;
        R.WriteString(AKeyName,AKeyValue);
        R.CloseKey;
      End;
  Finally
    R.Free;
  End;
end;

procedure DeleteRegAutoRun(ARegRootKey : TRegRootKey; AKeyName : String = '');
var
  R : TRegistry;
begin
  R := TRegistry.Create;
  Try
    If ARegRootKey = rkUser
      Then R.RootKey := HKEY_CURRENT_USER
      Else R.RootKey := HKEY_LOCAL_MACHINE;
    If AKeyName = '' Then AKeyName := ExtractFileName(Application.ExeName);
    If R.OpenKey(cAutoRunKey,True) Then
      Begin
        If R.ValueExists(AKeyName) Then R.DeleteValue(AKeyName);
        R.CloseKey;
      End;
  Finally
    R.Free;
  End;
end;

end.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025