<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇開(kāi)發(fā)語(yǔ)言培訓(xùn)專(zhuān)區(qū)Delphi程序設(shè)計(jì) → Delphi 源程序格式書(shū)寫(xiě)規(guī)范


      共有7949人關(guān)注過(guò)本帖樹(shù)形打印

    主題:Delphi 源程序格式書(shū)寫(xiě)規(guī)范

    美女呀,離線(xiàn),留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
    Delphi 源程序格式書(shū)寫(xiě)規(guī)范  發(fā)帖心情 Post By:2010-12-14 11:41:05

    程序自啟動(dòng)的原理

    程序自啟動(dòng)有以下兩種方式:

    1. 利用Win.ini文件實(shí)現(xiàn)程序的自動(dòng)啟動(dòng)

    Win.ini是系統(tǒng)保存在“C:Windows”目錄下的一個(gè)系統(tǒng)初始化文件,系統(tǒng)在啟動(dòng)時(shí)會(huì)檢索該文件中的相關(guān)項(xiàng),以進(jìn)行系統(tǒng)環(huán)境的初始設(shè)置。在該文件中的“[windows]”數(shù)據(jù)段中,有兩個(gè)數(shù)據(jù)項(xiàng)“l(fā)oad=”和“run=”,它們的作用就是在系統(tǒng)啟動(dòng)之后自動(dòng)地裝入和運(yùn)行相關(guān)的程序。如果我們需要在系統(tǒng)啟動(dòng)之后立即裝入并運(yùn)行一個(gè)程序,只需要將運(yùn)行文件的全文件名添加在該數(shù)據(jù)項(xiàng)的后面,系統(tǒng)啟動(dòng)后就會(huì)自動(dòng)運(yùn)行該程序,系統(tǒng)也會(huì)進(jìn)入特定的操作環(huán)境中。

    2. 利用注冊(cè)表實(shí)現(xiàn)相關(guān)程序的自動(dòng)啟動(dòng)

    系統(tǒng)注冊(cè)表保存著系統(tǒng)的軟件、硬件及其他與系統(tǒng)配置有關(guān)的重要信息,一個(gè)計(jì)算機(jī)系統(tǒng)的系統(tǒng)注冊(cè)表一旦遭到破壞,整個(gè)系統(tǒng)將無(wú)法運(yùn)行。在計(jì)算機(jī)系統(tǒng)注冊(cè)表中有HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current_Version/Run子鍵,如果要讓程序在系統(tǒng)啟動(dòng)的過(guò)程中啟動(dòng)該程序,就可以向該目錄添加一個(gè)子鍵。具體的過(guò)程是在注冊(cè)表中右擊該項(xiàng),選中其中的“新建”項(xiàng)目,然后選中其中的“串值”,建立新的串值后將它改成相應(yīng)的名稱(chēng),雙擊新建的串值,輸入新的數(shù)值,自動(dòng)啟動(dòng)程序的過(guò)程就設(shè)置完成。

    編程實(shí)例

    在Delphi 5.0中同時(shí)具有對(duì)注冊(cè)表和INI文件操作的函數(shù)。下面是筆者編寫(xiě)的一個(gè)簡(jiǎn)單程序,該程序通過(guò)修改注冊(cè)表和INI文件,使系統(tǒng)自動(dòng)啟動(dòng),相關(guān)程序的設(shè)置工作比較簡(jiǎn)單可靠。

    1. 程序功能概述

    程序的主界面是對(duì)話(huà)框,在主界面對(duì)話(huà)框中有兩個(gè)編輯框、一個(gè)按鈕組、一個(gè)打開(kāi)文件對(duì)話(huà)框、兩個(gè)普通按鈕(Button)組成。操作者先在編輯框中添加需要自動(dòng)加載的程序全文件名(也可以通過(guò)瀏覽按鈕來(lái)完成),然后通過(guò)按鈕組中兩個(gè)按鈕完成加載方式的選擇(注冊(cè)表方式或者修改Win.ini文件的方式),最后操作者通過(guò)點(diǎn)擊“應(yīng)用”按鈕實(shí)現(xiàn)程序的自動(dòng)加載,同時(shí)系統(tǒng)會(huì)提示操作者是否將計(jì)算機(jī)重新啟動(dòng),以便觀察程序的具體功能完成情況。

    2. 程序代碼

    procedure TForm1.Button1Click(Sender: TObject);

    {瀏覽按鈕的功能代碼}

    begin

    if (OpenDlg.Execute) then

    {當(dāng)操作者選擇OK時(shí),程序取得選擇文件的全路徑名(包括文件的路徑及文件名稱(chēng)),并將相應(yīng)的數(shù)值傳輸給相關(guān)的控件變量。}

    Edit2.Text := OpenDlg.FileName;

    end;

    procedure TForm1.OKBtnClick(Sender: TObject);

    {應(yīng)用按鈕的功能代碼}

    Var

    lKey: HKey;

    i,len: integer;

    title, data_set: LPCTSTR;

    ret0,ret1: longint;

    filename: String;

    begin

    if (edit1.Text =‘’) THEN

    {如果操作者沒(méi)有填寫(xiě)要設(shè)置項(xiàng)的標(biāo)題,程序顯示對(duì)話(huà)框,提示操作者進(jìn)行相關(guān)內(nèi)容的填寫(xiě)。}

    begin

    Application.MessageBox(‘Please input the title name’,‘提示’,MB_OK);

    EXIT;

    end;

    title:=PChar(edit1.Text);

    if (edit2.text =‘’)THEN

    {如果操作者沒(méi)有選擇要設(shè)置的程序全路徑文件名,程序顯示對(duì)話(huà)框提示操作者進(jìn)行相關(guān)的選擇。}

    begin

    Application.MessageBox(‘Please input the programe file name’,‘提示’,MB_OK);

    exit;

    end;

    if (RadioGroup1.ItemIndex = 0) then

    {如果操作者選擇注冊(cè)表方式,程序修改系統(tǒng)的注冊(cè)表。}

    begin

    data_Set:=‘SoftwareMicrosoft

    WindowsCurrentVersionRun’;

    {設(shè)置注冊(cè)表中相關(guān)的路徑}

    ret0:=RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_WRITE, lKey);

    //打開(kāi)注冊(cè)表中的相應(yīng)項(xiàng)

    if (ret0<>ERROR_SUCCESS) then

    Application.MessageBox(‘錯(cuò)誤0’,‘提示’,MB_OK);

    len := Length(Trim(Edit2.text))+1;

    filename := Trim(Edit2.text);

    for i:=0 to Length(filename) do

    if(filename[i]=‘’)then

    len:=len+1;

    ret1:=RegSetValueEx(lKey,PChar(title),0,REG_SZ,Pchar(filename),len);

    //將相關(guān)的信息寫(xiě)入注冊(cè)表。

    if(ret1<>ERROR_SUCCESS) then

    //判斷系統(tǒng)的相關(guān)注冊(cè)是否成功?

    Application.MessageBox(‘錯(cuò)誤1’,‘提示’,MB_OK);

    RegCloseKey(lKey);

    //關(guān)閉注冊(cè)表中的相應(yīng)的項(xiàng)

    end

    else begin

    WritePrivateProfileString(‘windows’,‘load’, PChar(filename),‘c:windowswin.ini’);

    WritePrivateProfileString(‘windows’,‘run’, PChar(filename),‘c:windowswin.ini’);

    end;

    VerifyDlg.ShowModal;

    {顯示對(duì)話(huà)框,提示操作者是否需要重新啟動(dòng)計(jì)算機(jī),以便驗(yàn)證程序的功能。}

    end;

    procedure TVerifyDlg.OKBtnClick(Sender: TObject);

    {重新啟動(dòng)按鈕的功能代碼}

    var

    OsVerInfo:OSVERSIONINFO;

    //保存系統(tǒng)版本信息的數(shù)據(jù)結(jié)構(gòu)

    Begin

    OsVerInfo.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);

    GetVersionEx(OsVerInfo);

    //取得系統(tǒng)的版本信息

    if(OsVerInfo.dwPlatformId=VER_PLATFORM

    _WIN32_WINDOWS) then

    ExitWindowsEx(EWX_REBOOT,0);

    //重新啟動(dòng)計(jì)算機(jī)

    end;


    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    Delphi 源程序格式書(shū)寫(xiě)規(guī)范








    簽名
    主站蜘蛛池模板: 成年大片免费视频| 精品无码国产自产在线观看水浒传 | 波多野结衣mxgs-983| 国产在线拍揄自揄拍无码| av无码免费一区二区三区| 我被黑人巨大开嫩苞在线观看| 亚洲国产日韩在线| 波多野结衣大战黑鬼101| 国产一区在线播放| 麻豆一二三四区乱码| 国精产品一区一区三区有限公司| 中文无码精品一区二区三区| 日韩人妻精品一区二区三区视频| 亚洲激情中文字幕| 狼色精品人妻在线视频| 国产一级毛片国语普通话对白| 黄色软件视频在线观看| 国语自产偷拍精品视频偷蜜芽| 中文字幕乱码人妻无码久久| 日本乱子伦xxxx| 亚洲不卡1卡2卡三卡2021麻豆| 欧美色图亚洲天堂| 印度精品性hd高清| 色欲综合久久中文字幕网| 国产精品99无码一区二区| Av鲁丝一区鲁丝二区鲁丝三区| 小宝贝浪货摸给我看| 久久亚洲av无码精品色午夜| 日韩欧美综合视频| 亚洲最大黄色网址| 正在播放国产美人| 公用玩物(np双xing总受)by单唯安| 老司机免费福利午夜入口ae58| 国产日韩欧美亚洲| 91精品国产91久久久久久最新 | 国模精品一区二区三区| 中国一级特黄毛片| 我两腿被同学摸的直流水| 久草资源福利站| 极品虎白女在线观看一线天| 亚洲欧美日韩精品久久久|