程序第一次运行(100分)

  • 主题发起人 主题发起人 xxczq
  • 开始时间 开始时间
X

xxczq

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得知程序是第一次运行?是否从注册表中读出?
我作的C/S系统,第一次运行时在网络环境下需要配置服务器名,并连接Sql Server成功。
如何得知程序是第一次运行呢?
 
如果你是用ADO连接的
在你的Datemodul的Create事件中
try
adoconnect1.connect := true;
except
(数据库设置)form.show;
end;

 
可以从注册表中读出的;
比如读取时的默认值为真,在你完成第一次运行后将此值置为假就可以了。
 
registry,inifiles都好用。
以前用TIniFile得多,
现在用TRegistry的多。
 
可以写入注册表,也可以写入ini文件

但是,你第二次运行,怎么知道 连接Sql Server是不是成功呢?

安 chener,说的作把
 
如何从注册表中读出?能给出原代码吗?
 
如果你有系统设置的表,那你在那里设置一个字段为:firstin,每次进入程序
时判断它是0便设为1,同时连接数据库,。这样就能保证。要么你就
安chener说的做!
 
如何从注册表中读出相关信息?
 
var
reg:tregistry;
begin
reg := TRegistry.create;
reg.rootkey:=HKEY_CURRENT_USER;//设根键;
reg.openkey('自己选一个主键',true);//打开主键;
reg.ReadString('要读出的键名值'));//读出值;
reg.WriteString('要写入的键名值'));//写入值;
reg.Closekey;
reg.free
end;

屡试不爽!只是别忘了把 registry 加到 uses 里就行了!给分吧!
 
你给的代码是读注册表中的信息,读出来以后如何判断程序是不是第一次运行?
 
呵呵,注册表的读写有KeyExist、ValueExist方法,你可以在读写的时候先判断一下是否已经存在
一个值。例:
RegTest:=TRegistry.Create;
RegTest.RootKey:=HKEY_LOCAL_MACHINE;
RegTest.OpenKey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',True);
if not RegTest.KeyExists('FirstRun')then begin
RegTest.CreateKey('FirstRun');
if not RegTest.ValueExists('第一次运行') then
RegTest.WriteString('已经运行',ParamStr(0));
n5.Checked:=True;
end else
n5.Checked:=RegTest.ValueExists('已经运行');
RegTest.CloseKey;
RegTest.Free;
//N5为一个CheckBox1
 
你给出的代码是使我的系统是整个程序中第一个运行的程序,我的意思是安装后,运行程序时,如何从注册表中读出我的系统是不是第一次运行
 
整个程序中第一个运行的程序???

呵呵,不会吧?你没有仔细思考代码。
我代码的思路如下:
当程序运行的时候先进行判断是否已经存在一个记录程序是否已经运行过的标志。如果
该值存在,则不做变化。如果该值不存在,则建立程序已经运行过的标志。
 
为什么一定要判继是第一次运行啊?
程序执行前判断数据库是否连接成功不就行了吗/
如果不成功,弹出连接窗口
 
你代码中的'第一次运行'是不是应该改为'FirstRun',而且我启动计算机时我的程序总是第一个运行
 
可以用注册表,你要不要实例?我发给你啊?
 
要。我的Email
youngdrag@chinaren.com
或则
azcq@netease.com
 
首先安装时不写注册表
运行时判断注册表,
没有该值,连接数据库,建立连接参数,
连接成功后,将该值写入注册表
有该值,直接读取参数连接
 
呵呵,我的代码是把你的程序注册成开机自启动。你可以改一下路径呀。另:
我已经给你发到azcq@netease.com信箱了,请查收。
全为RAR自解压格式。
 
后退
顶部