お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"EXEファイル名の補完"




{
  Windowsのショートカット作成ウィザードをシミュレートして実行形式
 のファイル名を補完する関数です。

 入力ファイル名に拡張子(.EXE)が省略されている場合は、これを補完し
 ます。

 入力ファイル名にパスの指定がない場合は、環境変数で設定されたパス
 が指定されたものとみなして補完します。

 入力ファイル名にパス及び拡張子(.EXE)が指定されている場合は、その
 ままのファイル名を出力します。

 但し、指定パスに該当ファイルが存在しない場合は、常に長さゼロの文
 字列を出力します。

   <例>
   Delphi32 →  c:\Program Files\Borland\Delphi4\Bin\Delphi32.exe
   c:\Windows\Notepad.exe  → c:\Windows\Notepad.exe
}

function ExpandExeFileName(const FileName: string): string;
var
  BufChar: array[0..1023] of Char;
  F, DirList: string;
begin
  Result:= '';
  // 拡張子がない場合は補完する
  if ExtractFileExt(FileName) = '' then
    F:= FileName + '.exe' else F:= FileName;
  // 該当するファイルが存在する場合はそのままを返す
  if FileExists(F) then Result:= FileName else
  begin
    // 環境変数パスで指定されたディレクトリリストを取得する
    if GetEnvironmentVariable('Path', BufChar, 1023) > 0 then
      DirList:= string(BufChar) else DirList:= '';
    // 環境変数パス上に存在する該当ファイル名をフルパス付で返す
    Result:= FileSearch(F, DirList);
  end;
end;

              ○ でるふぁい依存症連盟加入受付中 ○
                  http://member.nifty.ne.jp/h-triton/

Original document by H-Triton        氏 ID:(QZV11422)


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

Copyright 1996-2002 Delphi Users' Forum