SHFileOperationについて


neo  2007-06-19 18:06:26  No: 26753  IP: 192.*.*.*

SHFileOperationをファイルのコピーに使っています。
次の2点について教えて下さい。
[1]:「上書きしますか?」のダイアログを表示しない方法
[2]:*.exe 以外の全ファイルを指定する場合のワイルドカードの記述法

uses
  ShellAPI, FileCtrl;

procedure TForm1.Button1Click(Sender: TObject);
var
  foStruct:  TSHFileOpStruct;
  FromPath: string;
  ToPath: string;
begin
  //コピー元のディレクトリを指定
  if  (SelectDirectory(FromPath, [sdAllowCreate], 0)) then  begin
    //コピー先のディレクトリを指定
    if  (SelectDirectory(ToPath, [sdAllowCreate], 0)) then  begin  
      with   foStruct   do  begin
        wnd                :=   Handle;
        wFunc              :=   FO_COPY;
        pFrom              :=   PChar(FromPath + '\*.*' + #0);
        pTo                :=   PChar(ToPath   + '\' + #0);
        fFlags             :=   FOF_FILESONLY or FOF_ALLOWUNDO;
        fAnyOperationsAborted   :=   False;
        hNameMappings      :=   nil;
        lpszProgressTitle  :=   nil;
      end;
      SHFileOperation(foStruct);
    end;
  end;
end;

編集 削除
のぶこし  2007-06-20 17:43:01  No: 26754  IP: 192.*.*.*

[1]:「上書きしますか?」のダイアログを表示しない方法
    fFlags:= FOF_NOERRORUI;

編集 削除
aaa  2007-06-20 18:06:06  No: 26755  IP: 192.*.*.*

中途半端な(動かない)ソースコードを貼り付けるのはいかがな 
ものかと。コピペなら正直に出典元 
http://www.wwlnk.com/boheme/delphi/tips/tec0600.htm 
を明確にしたほうが良いでしょう。 
[1]については「Delphi SHFileOperation ダイアログ」「SHFILEOPSTRUCT  ダイアログ」 
等で検索して下さい。

編集 削除