Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#9
  Alt 25. Jun 2003, 17:44
Hallo,

ist jetzt vielleicht ein bisschen länger, tut aber was es soll.
Vielleciht vom Code her etwas verständlicher, weil die langen Pfade nicht angegeben werden.
Delphi-Quellcode:
procedure SetAutoStart(AppTitle, AppName: string;
                       Register: Boolean;
                       RunOnce: Boolean = False);
var
  Registry: TRegistry;
  RegistryOpen: Boolean;
begin
  RegistryOpen := False;
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_CURRENT_USER;
    case RunOnce of
      True: begin
               RegistryOpen := Registry.OpenKey(REGSTR_PATH_RUNONCE, False);
             end;
      False: begin
               RegistryOpen := Registry.OpenKey(REGSTR_PATH_RUN, False)
             end;
    end;
    if RegistryOpen then
    begin
      if Register then
      begin
        try
          Registry.WriteString(AppTitle, AppName);
        except
          MessageBeep(MB_ICONASTERISK);
          ShowMessage('Der Autostartschlüssel konnte nicht in der ' +
                      'Registry angelegt werden !');
        end;
      end
      else
      begin
        if Registry.ValueExists(AppTitle) then
        begin
          if not Registry.DeleteValue(AppTitle) then
          begin
            MessageBeep(MB_ICONASTERISK);
            ShowMessage('Der Autostartschlüssel konnte nicht aus der ' +
                        'Registry entfernt werden !');
          end;
        end;
      end;
      Registry.CloseKey;
    end;
  finally
    Registry.Free;
  end;
end;
Der Aufruf bei einer CheckBox, oder einem MenüItem das geChecked ist, müsste dann so aussehen.
Delphi-Quellcode:
procedure TForm1.Autostart1Click(Sender: TObject);
begin
  if Autostart1.Checked then
  begin
    SetAutoStart('DBSysCon', ParamStr(0), False, False);
    AutoStart1.Checked := False;
  end
  else
  begin
    SetAutoStart('DBSysCon', ParamStr(0), True, False);
    AutoStart1.Checked := True;
  end;
end;
Grüsse, Daniel

Nachtrag: AutoStart1 ist ein MenüPunkt mit Check-Möglichkeit. Also so ein Häckchen davor. Für ein ganz normales Menü. Oder auch PopUp-Menü.
  Mit Zitat antworten Zitat