お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"実行ファイルの自殺幇助バッチファイル"

この発言に対し以下のコメントが寄せられています
#00619 Fermion さん RE:実行ファイルの自殺幇助バッチファイル

■概要  実行ファイル終了後に、その実行ファイルを削除するサンプルです。  CreateProcess で実行ファイル削除用のバッチファイルを実行させて います。(フォルダの削除なども可能です。) ■使用法  ・プロジェクト名を Project1 にして下さい。  ・Form1 に Button1 を適当に配置して下さい。  ・Button1 の OnClick Event にサンプルコードを記述して下さい。  ・"test.bat" に、下記コードを記述し、Project1.exe が生成される   フォルダに格納して下さい。  ・プロジェクトをコンパイル後、Delphiを含むすべてのアプリを終了   した後に Project1.exe を実行させ、Button1 を押して下さい。 ■注意  ・COMMAND.COM のプロパティで、“フルスクリーン”に設定されている   場合、一瞬画面が真っ黒になります。((^^;)  ・Delphi 上でのデバッグ実行はしない方が無難です。  ・実行ファイル名は必ず、project1.exe にして下さい。  ・project1.exe と test.bat は同じフォルダに入れて下さい。 ■参考  FDELPHI/MES/6/7124 他。 ■バッチファイルの内容 REM==================================================================== @ECHO OFF :loop del project1.exe if exist project1.exe goto :loop del test.bat REM==================================================================== ■サンプルコード //===================================================================== procedure TForm1.Button1Click(Sender: TObject); var SI: TStartupInfo; PI: TProcessInformation; CommandLineStr: String; begin CommandLineStr := 'command.com /C ' + ExtractFilePath( Application.ExeName ) + 'test.bat'; with SI do begin cb := SizeOf( SI ); lpReserved := nil; lpDesktop := nil; lpTitle := nil; dwX := 0; dwY := 0; dwXSize := 0; dwYSize := 0; dwXCountChars := 0; dwYCountChars := 0; dwFillAttribute := 0; dwFlags := STARTF_USESHOWWINDOW; wShowWindow := SW_HIDE; cbReserved2 := 0; lpReserved2 := nil; hStdInput := 0; hStdOutput := 0; hStdError := 0; end;{of with SI do} if CreateProcess( nil, PChar( CommandLineStr ), nil, nil, False, CREATE_DEFAULT_ERROR_MODE, nil, nil, SI, PI ) then begin CloseHandle( PI.hThread ); CloseHandle( PI.hProcess ); end; (* Project1.exe 終了 *) Close; end; //===================================================================== 98/06/17(水) 19:14 Fermion[KHF03264] Original document by Fermion 氏 ID:(KHF03264)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum