我的程序里有“开机是否自动运行该程序”的选项,怎样实现每次运行时都保持上次所进行的选择,也就是说,如果我设置的是开机自动运行,那么重新运行程序时是自动运行;如果我设置的不是开机后自动运行,那么重新运行程序时就是不自动运行。请问怎么实现?我没分了,请大家谅解!

解决方案 »

  1.   

    一般是对注册表中的run添加你想要开机执行的路径
      

  2.   

    这个我知道
    我问的问题关键是:比如我用控件checkBox1来显示“开机是否自动运行”,如果我第一次运行时候,我在checkBox1里打的是对号;那么第二次运行的时候对号确没了,请问这个问题怎么解决?怎么使上次设置的对号还存在
      

  3.   

    操作一下ini或注册表,记录你上次的check,程序启动时读取这个值
      

  4.   

    hehe,具体怎么操作啊,怎么记录上次的check,程序启动时怎么读取这个值?谢谢了
      

  5.   

    如果你能让它开机自动运行,就应该会把checkbox的值写入注册表,并且在运行程序时读取它了。
      

  6.   

    就是这样的呀,我选的是开机后自动运行,也的确是自动运行了,可是CheckBox1的对号没了
    procedure TFrmsys.CheckBox1Click(Sender: TObject);
    begin
      if checkbox1.Checked=true then
        begin
          try
            reg := TRegistry.Create;
            reg.RootKey := HKEY_LOCAL_MACHINE ;
            if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', True) then
              begin
               Reg.WriteString('OAAssistant', Application.ExeName);
               Reg.CloseKey;
              end;
          finally
            reg.Free;
          end;
        end;
      if checkbox1.Checked=false then
        begin
          reg := TRegistry.Create;
          reg.RootKey := HKEY_LOCAL_MACHINE ;
          with Reg do
            begin
              try
                if OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False) then
                if ValueExists('OAAssistant') then
                   DeleteValue('OAAssistant');
              finally
                Free;
              end;
            end;
         end;
    end;
      

  7.   

    在 formshow 事件中检测 \Software\Microsoft\Windows\CurrentVersion\RunOAAssistant 是否存在,存在的话,就 checkbox1.checked := True
      

  8.   

    这样做,把你打勾的信息,保存到一个INI文件里,每次运行,都去读这个INI,读到打勾了,就运行这个。没有的话,就不运行。
      

  9.   

    可以看一下D:\Program Files\Borland\Delphi7\Source\Vcl\ScktSrvr.DPR的源码
      

  10.   

    把这个checkbox组件写入文件流,用TFileStream的writecomponent,然后存成文件。
    formcreate的时候再读取这个文件就可以了。
      

  11.   

    简单给你写了个代码:
    procedure TForm1.FormDestroy(Sender: TObject);
    var
      ms: TMemoryStream;
    begin
      try
        ms:= TMemoryStream.Create;
        ms.WriteComponent(checkbox1);
        ms.SaveToFile('e:\cb.ck');
      finally
        FreeAndNil(ms);
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      ms: TMemoryStream;
    begin
      try
        ms:= TMemoryStream.Create;
        ms.LoadFromFile('e:\cb.ck');
        checkbox1:= TCheckBox(ms.ReadComponent(checkbox1));
      finally
        FreeAndNil(ms);
      end;
    end;
      

  12.   

    用了xixuemao(乱)给的代码,有个错误提示说:找不到指定的文件!