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

如何自動執行外部指令

答題得分者是:sos_admin
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-05 23:18:30 IP:211.72.xxx.xxx 未訂閱
小弟想用DELPHI 執行外部指令 cacls.exe 去更改檔案的權限 ShellExecute(handle,'open','cacls.exe','C:\DELPHI/*.* /T /G administrators:F',nil,SW_ShowNormal); 但每次一執行到這一行, 就會出現dos 視窗 問我 您是否確定 (Y/N)? 如何改成自動執行, 而不需要再確認呢?
CHIWW
初階會員


發表:8
回覆:16
積分:29
註冊:2002-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-06 00:10:56 IP:61.227.xxx.xxx 未訂閱
//使用下列方法吧,我測試可以成功 //不過此程式仍有一些缺點 //假如前景視窗抓不正確,可能會有問題 procedure TForm1.Button1Click(Sender: TObject); var Ha:THandle; begin ShellExecute(handle,'open','cacls.exe','C:\BEGDB\*.* /T /G administrators:F',nil,SW_ShowNormal); sleep(200);//此行不可省略,否則會有問題 Ha:=GetForegroundWindow; SendMessage(Ha,WM_CHAR,Ord('Y'),0); SendMessage(Ha,WM_CHAR,Integer(#13),0); SendMessage(Ha,WM_CHAR,Integer(#10),0); end;
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-06 07:58:14 IP:61.155.xxx.xxx 未訂閱
这样就可以了    ShellExecute(handle,'open','cacls.exe','C:\DELPHI/*.* /T /G administrators:F|y',nil,SW_ShowNormal);
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-06 09:57:42 IP:61.221.xxx.xxx 未訂閱
謝謝sos_admin 但是.. 系統是不會問您是否確定 (Y/N)? 但是指令也沒有執行    
引言: 小弟想用DELPHI 執行外部指令 cacls.exe 去更改檔案的權限 ShellExecute(handle,'open','cacls.exe','C:\DELPHI/*.* /T /G administrators:F',nil,SW_ShowNormal); 但每次一執行到這一行, 就會出現dos 視窗 問我 您是否確定 (Y/N)? 如何改成自動執行, 而不需要再確認呢?
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-06 11:12:20 IP:61.155.xxx.xxx 未訂閱
will 兄:    我想这是可以的,可能是您的dos命令的语法参数有误吧
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-06 20:13:01 IP:211.72.xxx.xxx 未訂閱
謝謝TIM兄 但真的不行 小弟反覆在Windows 2000 的Dos 命令列及Delphi下式 在DOS 命令列下用 cacls.exe C:\MYDRIECT/*.* /T /G  administrators:F 系統會出現  您是否確定 (Y/N)? 指令會執行成功  但在Delphi中用 ShellExecute(handle,'open',PCHAR('cacls.exe'),PCHAR('C:\DELPHI/*.* /E /G administrators:F|y'),nil,SW_NORMAL);    只會看到Dos 命令列閃一下 但沒有任何作用    
引言: will 兄: 我想这是可以的,可能是您的dos命令的语法参数有误吧 附>< face="Verdana, Arial, Helvetica">
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-07 07:39:18 IP:61.155.xxx.xxx 未訂閱
这样做: 1、建立一个c:\1.txt文件,内容如下: y    2、调用如下: ShellExecute(handle,'open','cacls.exe','C:\temp/*.* /T /G administrators:F〈c:\1.txt',nil,SW_ShowNormal);    这个可以,我试验过。您可以将这个语法在dos下test一下< >< > 發表人 - sos_admin 於 2003/08/07 08:03:37
系統時間:2024-05-02 12:41:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!