線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1913
推到 Plurk!
推到 Facebook!

呼叫外部程式搬移一群檔案

尚未結案
ak06407
一般會員


發表:7
回覆:9
積分:8
註冊:2003-07-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-18 15:16:57 IP:61.217.xxx.xxx 未訂閱
我用WINEXEC執行外部程式搬移一群檔案,可是沒有成功,請問該如何修改? winexec(pchar('c:\winnt\system32\command.com /c move d:\bad\M-019846.* d:\bad\tgyctha705'),SW_SHOW); 感恩! kevin
------
kevin
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-18 16:19:31 IP:210.65.xxx.xxx 未訂閱
Hi ak06407,    改成這樣試試:
winexec(pchar('CMD /c move d:\bad\M-019846.* d:\bad\tgyctha705'),SW_SHOW);
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
yorkland
高階會員


發表:2
回覆:138
積分:108
註冊:2004-12-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-18 18:01:53 IP:220.130.xxx.xxx 未訂閱
不好意思, 我忘了是在那一篇文章看到以下的內容。 我覺得比直接在背景執行command的效果好太多了。 它也提供move, copy..等功能, 過程中還會出現Windows預設的動畫視窗。 提供給你參考。    // 程式中Runtime複製檔案, 但又希望能出現畫面的進度畫面。 // 遇到大檔案搬移或複製時, 才不會不知道進度為何?   {$EXTERNALSYM FO_MOVE} FO_MOVE           = $0001; {$EXTERNALSYM FO_COPY} FO_COPY           = $0002; {$EXTERNALSYM FO_DELETE} FO_DELETE         = $0003; {$EXTERNALSYM FO_RENAME} FO_RENAME         = $0004;    var   Fos     : TSHFileOpStruct;   p       : pchar;   sDest   : PChar; //string; begin   // sDest := PChar(Edit2.Text+FormatDateTime('yyyymmdd', Date));   FillChar(Fos, sizeof(Fos), #0);   with Fos do begin     Wnd    := Handle;     wFunc  := FO_COPY;     pFrom  := ''; // PChar(Edit1.Text);     pTo    := ''; // sDest;     fFlags := 0;   end;   if ((SHFileOperation(Fos) <> 0) or     (Fos.fAnyOperationsAborted <> false)) then   ShowMessage('作業取消'); end;
ak06407
一般會員


發表:7
回覆:9
積分:8
註冊:2003-07-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-18 21:42:29 IP:218.166.xxx.xxx 未訂閱
您好,這個功能看起來非常理想的,但是不知道怎麼用,可否再描述清楚一點, 謝謝! Kevin kevin
------
kevin
yorkland
高階會員


發表:2
回覆:138
積分:108
註冊:2004-12-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-19 10:58:15 IP:203.70.xxx.xxx 未訂閱
var Fos: TSHFileOpStruct; Str1: String; Str2: String; Str3: String; begin Str1:='C:\Temp\Test1.zip'; // 第一個要複製的檔案 Str2:='C:\Temp\Test2.zip'; // 第二個要複製的檔案 Str3:='C:\Temp\Test3.zip'; // 第二個要複製的檔案 Fos.Wnd:=Handle; Fos.wFunc:=FO_COPY; // 我試過 Fos.pForm:='C:\Temp\*.zip'; 這樣也可以 // 多檔案間要以#0分隔, 最後要加二個#0 Fos.pFrom:=PChar(Str1 #0 Str2 #0 Str3 #0 #0); // 指定新的目錄 Fos.pTo:='C:\Temp\Test2\'; // 以下這行就會產生複製的動畫 // Fos還有Flag可做設定.. SHFileOperation(Fos); ShowMessage('Completed'); end;
系統時間:2024-05-01 15:41:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!