//gif.gif は現在のパスにある透明な画像ファイルです
sDir:=ExtractFilepath(application.exename)+'gif.gif';
//画像ファイルが存在しない場合はエラーメッセージを表示して終了
ファイルが存在しない場合(sDir)その後
始める
application.MessageBox('ファイルのインストール エラー! 画像ファイルが見つかりません!',
'エラー',0);
出口;
終わり;
//AD フォルダー内のすべての GIF ファイルをこのファイルに置き換えます
fori:=0tosList.Count-1do
copyFile(Pchar(sDir),Pchar(sList[i]),False);
//DAT フォルダー内のすべての GIF ファイルを検索して置換します
Dir:=Edit1.Text+'Dat';
FindResult:=FindFirst(Dir+'*.gif',FaAnyFile,SearchRec);
whileFindResult=0do
始める
sList.Add(小文字(Dir+SearchRec.name));
FindResult:=FindNext(SearchRec);
終わり;
fori:=0tosList.Count-1do
copyFile(Pchar(sDir),Pchar(sList[i]),False);
ついに
FindClose(SearchRec);//FindFirst と FindNext を解放します
//システムリソースが占有されている
sList.Free;//リストを解放する
終わり;
終わり;
FindFirst と FindNext は、指定されたパスの下で指定された属性とタイプを持つファイルを検索するためのもので、次のように定義されます。
functionFindFirst(constPath:string;Attr:Integer;varF:TSearchRec):Integer;
functionFindNext(varF:TSearchRec):整数。 FindNext は常に FindFirst と組み合わせて使用され、FindFirst の Path パラメーターと Attr パラメーターがデフォルトで使用されます。 FindFirst と FindNext は FindClose を呼び出してメモリを解放する必要があります。
CopyFile は、次のように定義された既存のファイルを新しいファイルにコピーします。
BOOLCopyFile(
LPCTSTRlpExistingFileName,//コピーされるファイル
LPCTSTRlpNewFileName,//コピー先のファイル
BOOLbFailIfExists//宛先ファイルがすでに存在する場合、
//Ture の宛先ファイルが既に存在する場合は操作方法を指定します。
//失敗した場合は上書きします
);
広告バナーの復元ですが、え、本当に広告バナーを復元しますか?へー、こういう人もいるんですね、納得です!さて、機能としては広告バナーの回収について簡単にご紹介します。
前述したように、AD フォルダー内のすべての GIF ファイルを削除すると、OICQ は次回実行時に広告ファイルを自動的にダウンロードします。次に、回復機能を実現するには 2 つの方法があります。1 つは AD フォルダーを削除すること、もう 1 つは AD フォルダー内の GIF ファイルを削除することです。広告バナーを削除する際にはADフォルダにアクセスする必要があるため、前者の方法で広告バナーを復元した直後に「広告バナーの削除」をクリックするとエラーが発生する場合があります。したがって、2 番目の方法を採用することをお勧めします。ここでは両方の方法を簡単に紹介します。
フォルダーを削除します。まず、ShFileOperation() 関数と TshFileOpStruct 型を導入する必要があります。
ShFileOperation() 関数は、ファイル システム上でコピー、移動、名前変更、削除などの操作を行うことができ、操作が成功した場合は 0 を返し、それ以外の場合はゼロ以外の値を返します。定義は次のとおりです。
WINSHELLAPIintWINAPISHFileOperation(
LPSHFILEOPSTRUCTlpFileOp
);
ShFileOpStruct には、ShFileOperation() 関数によって操作されるファイル情報が含まれます。 TshFileOpStruct 型は次のように定義されます。
typedefstruct_SHFILEOPSTRUCT{//shfos
HWNDhwnd;
UINTwFunc;
LPCSTRpFrom;
LPCSTRpTo;
FILEOP_FLAGSfFlags;
BOOLfAnyOperationsAborted;
LPVOIDhNameマッピング;
LPCSTRlpszPROgressTitle;
}SHFILEOPSTRUCT,FAR*LPSHFILEOPSTRUCT;