知识大全 用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创建服务程序

小技巧:用Delphi创建服务程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Windows/X

知识大全 用Delphi编写打印程序的窍门

用Delphi编写打印程序的窍门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果你想自己用D

知识大全 用Delphi编写系统进程监控程序

用Delphi编写系统进程监控程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本程序通过调用ke

知识大全 用Delphi编制可自动升级程序

用Delphi编制可自动升级程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在编制了一个应用程

知识大全 用Delphi设计循环播放声音文件程序

用Delphi设计循环播放声音文件程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 用注册表对Delphi程序加密

用注册表对Delphi程序加密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 用Delphi打造图形界面的Ping程序

用Delphi打造图形界面的Ping程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘 要本

知识大全 用Delphi 开发数据库程序经验三则

用Delphi开发数据库程序经验三则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  建立临时表 

知识大全 用Delphi开发数据库程序经验三则

用Delphi开发数据库程序经验三则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一建立临时表  

知识大全 用Delphi开发Web服务数据库程序

用Delphi开发Web服务数据库程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!第一步编写服务