知识大全 用Delphi编码实现程序自启动
Posted 知
篇首语:不怕路长,只怕志短。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Delphi编码实现程序自启动相关的知识,希望对你有一定的参考价值。
用Delphi编码实现程序自启动 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
一 程序自启动的原理
程序自启动有以下两种方式:
利用Win ini文件实现程序的自动启动
Win ini是系统保存在 C:Windows 目录下的一个系统初始化文件 系统在启动时会检索该文件中的相关项 以进行系统环境的初始设置 在该文件中的 [windows] 数据段中 有两个数据项 load= 和 run= 它们的作用就是在系统启动之后自动地装入和运行相关的程序 如果我们需要在系统启动之后立即装入并运行一个程序 只需要将运行文件的全文件名添加在该数据项的后面 系统启动后就会自动运行该程序 系统也会进入特定的操作环境中
利用注册表实现相关程序的自动启动
系统注册表保存著系统的软件 硬件及其他与系统配置有关的重要信息 一个计算机系统的系统注册表一旦遭到破坏 整个系统将无法运行 在计算机系统注册表中有HKEY_LOCAL_MACHINE/Sofare/Microsoft/Windows/Current_Version/Run子键 如果要让程序在系统启动的过程中启动该程序 就可以向该目录添加一个子键 具体的过程是在注册表中右击该项 选中其中的 新建 项目 然后选中其中的 串值 建立新的串值后将它改成相应的名称 双击新建的串值 输入新的数值 自动启动程序的过程就设置完成
二 编程实例
在Delphi 中同时具有对注册表和INI文件操作的函数 下面是笔者编写的一个简单程序 该程序通过修改注册表和INI文件 使系统自动启动 相关程序的设置工作比较简单可靠
程序功能概述
程序的主界面是对话框 在主界面对话框中有两个编辑框 一个按钮组 一个打开文件对话框 两个普通按钮(Button)组成 操作者先在编辑框中添加需要自动加载的程序全文件名(也可以通过浏览按钮来完成) 然后通过按钮组中两个按钮完成加载方式的选择(注册表方式或者修改Win ini文件的方式) 最后操作者通过点击 应用 按钮实现程序的自动加载 同时系统会提示操作者是否将计算机重新启动 以便观察程序的具体功能完成情况
程序代码
procedure TForm Button Click(Sender: TObject);
浏览按钮的功能代码
begin
if (OpenDlg Execute) then
当操作者选择OK时 程序取得选择文件的全路径名(包括文件的路径及文件名称) 并将相应的数值传输给相关的控件变量
Edit Text := OpenDlg FileName;
end;
procedure TForm OKBtnClick(Sender: TObject);
应用按钮的功能代码
Var
lKey: HKey;
i len: integer;
title data_set: LPCTSTR;
ret ret : longint;
filename: String;
begin
if (edit Text = ) THEN
如果操作者没有填写要设置项的标题 程序显示对话框 提示操作者进行相关内容的填写
begin
Application MessageBox( Please input the title name 提示 MB_OK);
EXIT;
end;
title:=PChar(edit Text);
if (edit text = )THEN
如果操作者没有选择要设置的程序全路径文件名 程序显示对话框提示操作者进行相关的选择
begin
Application MessageBox( Please input the programe file name 提示 MB_OK);
exit;
end;
if (RadioGroup ItemIndex = ) then
如果操作者选择注册表方式 程序修改系统的注册表
begin
data_Set:= Sofare\\Microsoft\\
Windows\\CurrentVersion\\Run ;
设置注册表中相关的路径
ret :=RegOpenKeyEx(HKEY_LOCAL_MACHINE data_Set KEY_WRITE lKey);
//打开注册表中的相应项
if (ret <>ERROR_SUCCESS) then
Application MessageBox( 错误 提示 MB_OK);
len := Length(Trim(Edit text))+ ;
filename := Trim(Edit text);
for i:= to Length(filename) do
if(filename[i]= \\ )then
len:=len+ ;
ret :=RegSetValueEx(lKey PChar(title) REG_SZ Pchar(filename) len);
//将相关的信息写入注册表
if(ret <>ERROR_SUCCESS) then
//判断系统的相关注册是否成功?
Application MessageBox( 错误 提示 MB_OK);
RegCloseKey(lKey);
//关闭注册表中的相应的项
end
else begin
WritePrivateProfileString( windows load PChar(filename) c:\\windows\\win ini );
WritePrivateProfileString( windows run PChar(filename) c:\\windows\\win ini );
end;
VerifyDlg ShowModal;
显示对话框 提示操作者是否需要重新启动计算机 以便验证程序的功能
end;
procedure TVerifyDlg OKBtnClick(Sender: TObject);
重新启动按钮的功能代码
var
OsVerInfo:OSVERSIONINFO;
//保存系统版本信息的数据结构
Begin
OsVerInfo dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(OsVerInfo);
//取得系统的版本信息
if(OsVerInfo dwPlatformId=VER_PLATFORM
_WIN _WINDOWS) then
ExitWindowsEx(EWX_REBOOT );
//重新启动计算机
end;
cha138/Article/program/Delphi/201311/24997相关参考
小技巧:用Delphi创建服务程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Windows/X
用Delphi编写打印程序的窍门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如果你想自己用D
用Delphi编写系统进程监控程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本程序通过调用ke
用Delphi编制可自动升级程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在编制了一个应用程
用Delphi设计循环播放声音文件程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
用注册表对Delphi程序加密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
用Delphi打造图形界面的Ping程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘 要本
用Delphi开发数据库程序经验三则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 建立临时表
用Delphi开发数据库程序经验三则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一建立临时表
用Delphi开发Web服务数据库程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!第一步编写服务