程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用DELPHI給OICQ動手術(二)

用DELPHI給OICQ動手術(二)

編輯:Delphi

  // gif.gif為當前路徑下的一透明圖片文件
  
   sDir := ExtractFilepath(application.exename)+ 'gif.gif';
  
   //如果圖片文件不存在,則顯示錯誤信息並退出
  
   if not fileexists(sDir) then
  
   begin
  
   application.MessageBox('文件安裝錯誤!圖片文件未找到!',
  
   '錯誤',0);
  
   exit;
  
   end;
  
   //用該文件替換掉AD文件夾下的所有GIF文件
  
   for i := 0 to sList.Count - 1 do
  
   copyFile(Pchar(sDir) ,Pchar(sList[i]),False);
  
   //查找並替換掉DAT文件夾下的所有GIF文件
  
   Dir := Edit1.Text + 'Dat';
  
   FindResult := FindFirst(Dir + '*.gif',FaAnyFile,SearchRec);
  
   while FindResult = 0 do
  
   begin
  
   sList.Add(lowercase(Dir + SearchRec.name));
  
   FindResult := FindNext(SearchRec);
  
   end;
  
   for i := 0 to sList.Count - 1 do
  
   copyFile(Pchar(sDir) ,Pchar(sList[i]),False);
  
   finally
  
   FindClose(SearchRec); //釋放FindFirst和FindNext
  
   //占用的系統資源
  
   sList.Free; //釋放列表
  
   end;
  
   end;
  
   FindFirst和FindNext是查找指定路徑下指定屬性和類型的文件,定義如下:
  
   function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
  
   function FindNext(var F: TSearchRec): Integer。FindNext總是與FindFirst配合使用,缺省使用FindFirst的Path和Attr參數。FindFirst和FindNext必須調用FindClose來釋放內存。
  
   CopyFile拷貝已存在的文件到一個新文件,定義如下:
  
   BOOL CopyFile(
  
   LPCTSTR lpExistingFileName, // 要拷貝的文件
  
   LPCTSTR lpNewFileName, // 拷貝的目的文件
  
   BOOL bFailIfExists // 如果目的文件已存在,
  
   // 指出如何操作,如果為Ture而目的文件已存在則操
  
   //作失敗,否則覆蓋
  
   );
  
   至於恢復廣告條,怎麼,你真的想恢復廣告條啊?哇,這樣的人也有,我算是服了!好,作為一個功能,簡單介紹廣告條的恢復。
  
   前面講過,刪除掉AD文件夾下的所有GIF文件,OICQ下次運行後會自動下載廣告文件。那麼有兩種方法來實現恢復功能,一種方法就是刪除AD文件夾,另一種方法就是刪除AD文件夾下的GIF文件。鑒於去掉廣告條時要訪問AD文件夾,如果采用第一種方法,恢復廣告條後馬上點擊“去掉廣告條”,可能會出錯。所以建議采用第二種方法。這裡兩種方法都簡單介紹一下。
  
   刪除文件夾。首先有必要介紹一下ShFileOperation()函數和TshFileOpStruct類型。
  
   ShFileOperation()函數可以對文件系統進行拷貝、移動、重命名、刪除等操作,如果操作成功則返回0,否則返回非0值。定義如下:
  
   WINSHELLAPI int WINAPI SHFileOperation(
  
   LPSHFILEOPSTRUCT lpFileOp
  
   );
  
   ShFileOpStruct包含了ShFileOperation()函數進行操作的文件信息。TshFileOpStruct類型定義如下:
  
   typedef struct _SHFILEOPSTRUCT { // shfos
  
   HWND hwnd;
  
   UINT wFunc;
  
   LPCSTR pFrom;
  
   LPCSTR pTo;
  
   FILEOP_FLAGS fFlags;
  
   BOOL fAnyOperationsAborted;
  
   LPVOID hNameMappings;
  
   LPCSTR lpszProgressTitle;
  
   } SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved