我的程序里有“开机是否自动运行该程序”的选项,怎样实现每次运行时都保持上次所进行的选择,也就是说,如果我设置的是开机自动运行,那么重新运行程序时是自动运行;如果我设置的不是开机后自动运行,那么重新运行程序时就是不自动运行。请问怎么实现?我没分了,请大家谅解!
解决方案 »
- delphi2007编写的数据库程序生成可执行文件后,是否能在任何windows平台上运行?
- 打印:在QuickRep中打印BDChar的图形 怎么做?
- 请问怎么得到一种商品的五笔码和拼音码
- 我动态创建了一个cxgrid,但不能用,老大们帮忙看看
- 谁知道TClientDataset.FieldDefs 和 Fields 的用法区别,如何动态加入计算字段或者可编辑的虚拟字段?
- 多个wav 文件的合并?
- 怎样设置checklistbox每列的宽度?
- 怎么把数据库中的字段值赋给变量?
- 哪位有delphi7的安装文件,可否给我份?
- LoadFromFile 网络gif图片 ??
- 【△△△】如何同MS查询分析器一样俘获出错语句的具体行列?【▲▲▲】
- 怎样对存储过程的参数赋null值?
我问的问题关键是:比如我用控件checkBox1来显示“开机是否自动运行”,如果我第一次运行时候,我在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;
formcreate的时候再读取这个文件就可以了。
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;