明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

讓Delphi程序更方便地打開

[摘要]一般情況下,程序在安裝時,要進(jìn)行建立自己的程序組和程序項(xiàng)、在桌面上建立快捷方式、 讓程序隨WIN9X/NT自動啟動、把程序快捷方式放入快速啟動工具欄等工作,其目的就 是讓用戶更容易、更方...
一般情況下,程序在安裝時,要進(jìn)行建立自己的程序組和程序項(xiàng)、在桌面上建立快捷方式、  
  讓程序隨WIN9X/NT自動啟動、把程序快捷方式放入快速啟動工具欄等工作,其目的就  
  是讓用戶更容易、更方便運(yùn)行自己的程序,從而且增加程序的友好性。下面我們就討論一下在  
  DELPHI程序如果實(shí)現(xiàn)這四項(xiàng)操作。  
    
  一、建立自己的程序組和程序項(xiàng)  
    1、實(shí)現(xiàn)原理  
      建立自己的程序組,就是在WINDOWS目錄下的子目錄Start Menu\Programs下,  
  建立一個子目錄;建立程序項(xiàng),就是在該子目錄下建立程序的快捷方式。  
    2、建立程序的快捷方式  
      由于建立自己的程序組和程序項(xiàng)、在桌面上建立快捷方式、把程序快捷方式放入快速  
  啟動工具欄三個操作中要用到建立程序快捷方式的操作,首先來討論一下 如何在DELPHI  
  程序中建立程序快捷方式。  
      在手工建立程序的快捷方式時,通常要指定程序的文件名稱和運(yùn)行參數(shù);在程序中建  
  立程序的快捷方式時還要指定程序的工作目錄。我們可以用ShlObj單元中COM對象IShellLink  
  來指定程序的文件名稱、運(yùn)行參數(shù)和程序的工作目錄三個參數(shù),然后用COM對象IPersistFile  
  來保存快捷方式文件。具體的實(shí)現(xiàn)步驟請參見下面程序函數(shù)和注釋。  
      我們要用到的操作是在指定目錄下建立指定程序的快捷方式,因而要指定快捷文件要  
  保存的目錄。  
    
  { 建立程序的快捷方式,程序文件名稱為strExeFileName,運(yùn)行參數(shù)為strParameters,  
  快捷方式所在目錄為strPath,返回值為True表示成功建立快捷方式,請?jiān)趩卧性黾?nbsp; 
  ComObj, ShlObj, ActiveX三個單元 }  
  function CreateShortcut( strExeFileName, strParameters, strPath : string ) : boolean;  
  var  
   strLnkFileName : widestring;//程序的快捷方式文件名稱  
   shelllinkTemp : IShellLink;  
   persistfileTemp : IPersistFile;  
  begin  
   //設(shè)置快捷方式的參數(shù)  
   shelllinkTemp := IShellLink( CreateComObject(CLSID_ShellLink));  
   with shelllinkTemp do  
   begin  
   SetPath( PChar( strExeFileName ) ); //設(shè)置程序文件全名  
   SetArguments( PChar( strParameters) );//設(shè)置程序的命令行參數(shù)  
   //設(shè)置程序的工作目錄  
   SetWorkingDirectory( PChar( ExtractFilePath( strExeFileName ) ) );  
   end;  
    
   //構(gòu)造快捷方式的文件名(.LNK),路徑采用指定目錄,文件名為程序文件名,擴(kuò)展名為LNK  
   //路徑采用指定目錄,文件名為程序文件名  
   strLnkFileName := strPath + '\' + ExtractFileName( strExeFileName );  
   //替代文件擴(kuò)展名  
   strLnkFileName := copy( strLnkFileName,1, length( strLnkFileName ) -  
   length( ExtractFileExt( strExeFileName ) ) )  
   + '.LNK';  
   //保存快捷方式的文件  
   persistfileTemp := shelllinkTemp as IPersistFile;  
   if S_OK = persistfileTemp.Save( PWChar( strLnkFileName ) , false ) then  
   result := true //保存成功,返回True  
   else result := false;//保存失敗,返回False  
  end;  
    
   。场⒔⒆约旱某绦蚪M和程序項(xiàng)  
  { 創(chuàng)建程序組和程序項(xiàng) }  
  procedure TForm1.Button2Click(Sender: TObject);  
  begin  
   //創(chuàng)建程序組MyGroup,即在C:\PWIN98\Start Menu\Programs下建立子目錄MyGroup  
   if not DirectoryExists( 'C:\PWIN98\Start Menu\Programs\MyGroup' ) then  
   ForceDirectories( 'C:\PWIN98\Start Menu\Programs\MyGroup' );  
   //創(chuàng)建程序項(xiàng),在該子目錄下建立程序的快捷方式  
   if CreateShortcut( 'C:\Program Files\Borland\Dbd\Dbd32.exe','%1',  
   'C:\PWIN98\Start Menu\Programs\MyGroup' ) then  
   memo1.lines.add( '創(chuàng)建程序組和程序項(xiàng)成功' )//創(chuàng)建程序組和程序項(xiàng)成功  
   else//創(chuàng)建程序組和程序項(xiàng)失敗  
   memo1.lines.add( '創(chuàng)建程序組和程序項(xiàng)失敗' );  
  end;  
    
  二、在桌面上建立程序的快捷方式  
   。薄(shí)現(xiàn)原理  
      在桌面上建立程序的快捷方式,就是在WINDOWS目錄下的子目錄Desktop下  
  建立程序的快捷方式。  
    2、在桌面上建立程序的快捷方式  
  { 在桌面上建立程序的快捷方式 }  
  procedure TForm1.Button1Click(Sender: TObject);  
  begin  
   //在目錄C:\PWIN98\Desktop下建立程序的快捷方式  
   if CreateShortcut( 'C:\Program Files\Borland\Dbd\Dbd32.exe','%1',  
   'C:\PWIN98\Desktop' ) then//創(chuàng)建桌面快捷方式成功  
   memo1.lines.add( '創(chuàng)建桌面快捷方式成功' )  
   else//創(chuàng)建桌面快捷方式失敗  
   memo1.lines.add( '創(chuàng)建桌面快捷方式失敗' );  
  end;  
    
  三、讓程序隨WIN9X/NT自動啟動  
    讓程序隨WIN9X/NT自動啟動,可以把程序的快捷方式放到“啟動”程序組中,  
  不過這并不是一個好辦法。較好的辦法是修改系統(tǒng)注冊表,在其中加入程序文件的名稱及  
  運(yùn)行參數(shù)。  
   。、實(shí)現(xiàn)原理  
      讓程序隨WIN9X/NT自動啟動,可以在注冊表的HKEY_LOCAL_MACHINE\Software  
  \Microsoft\Windows\CurrentVersion\Run中加入程序文件的名稱及運(yùn)行參數(shù),使程序作為一般  
  程序隨WIN9X/NT自動啟動;或在HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsCurrentVersion\RunOnce中加入程序文件的名稱及運(yùn)行參數(shù),使程序作為服務(wù)程序隨WIN9X  
  /NT自動啟動,這樣按Ctrl+Alt+Del時,任務(wù)列表中將不會列出該程序的有關(guān)信息。  
   。、讓程序隨WIN9X/NT自動啟動  
  { 讓自己的程序隨WIN95/98/NT的啟動而運(yùn)行,請?jiān)趩卧性黾覴egistry單元 }  
  procedure TForm1.Button3Click(Sender: TObject);  
  var  
   registerTemp : TRegistry;  
   success : boolean;  
  begin  
   registerTemp := TRegistry.Create; //建立一個Registry實(shí)例  
   with registerTemp do  
   begin  
   RootKey:=HKEY_LOCAL_MACHINE;//設(shè)置根鍵值為HKEY_LOCAL_MACHINE  
   //找到Software\Microsoft\Windows\CurrentVersion\Run  
   if OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True) then  
   //寫入自己程序的快捷方式信息  
   begin  
   WriteString( 'DBD', 'C:\Program Files\Borland\Dbd\Dbd32.exe' );  
   success := true;//設(shè)置程序自動啟動成功  
   end  
   else success := false;//設(shè)置程序自動啟動失敗  
   //善后處理  
   CloseKey;  
   Free;  
   end;  
   if success then memo1.lines.add( '設(shè)置程序自動啟動成功' )  
   else memo1.lines.add( '設(shè)置程序自動啟動失敗' );  
  end;  
    
  四、把程序快捷方式放入快速啟動工具欄  
    Windows95/98的任務(wù)欄是桌面上的一個特殊區(qū)域,用于顯示“開始”菜單、時鐘等以及  
  目前執(zhí)行的任務(wù)。Windows98的任務(wù)欄增加了快速啟動工具欄,將程序的快捷方式放在任務(wù)欄  
  的“快速啟動”區(qū),可以更方便地啟動程序,以免在開始菜單中一級級地查找或關(guān)閉窗口在  
  桌面上啟動程序。  
    Windows98 安裝后缺省的快速啟動工具欄包含“顯示桌面”、“IE 瀏覽器”等。如果快  
  速啟動工具欄已關(guān)閉,可用鼠標(biāo)右鍵單擊任務(wù)欄的空白區(qū)域,單擊“工具欄”,確認(rèn)已選中  
  “快速啟動”即可打開。  
   。、實(shí)現(xiàn)原理  
      把程序快捷方式放入快速啟動工具欄,就是在WINDOWS目錄下的子目錄  
  Application Data\Microsoft\Internet Explorer\Quick Launch下建立程序的快捷方式。  
    2、把程序快捷方式放入快速啟動工具欄  
  { 將程序快捷方式加入快速啟動工具欄 }  
  procedure TForm1.Button4Click(Sender: TObject);  
  begin  
   //將程序快捷方式加入快速啟動工具欄  
   if CreateShortcut( 'C:\Program Files\Borland\Dbd\Dbd32.exe','%1',  
   'C:\PWIN98\Application Data\Microsoft\Internet Explorer\Quick Launch' )  
   then//成功  
   memo1.lines.add( '將程序快捷方式加入快速啟動工具欄成功' )  
   else//失敗  
   memo1.lines.add( '將程序快捷方式加入快速啟動工具欄失敗' );  
  end;  
    
    以上程序在PWIN98+DELPHI3.0下調(diào)試通過。  
  (作者:深圳王發(fā)軍 wangfajun@163.net http://wangfajun.163.net)