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

無法運行ShellExecute???

尚未結案
chrislao
初階會員


發表:86
回覆:69
積分:36
註冊:2002-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-19 10:55:53 IP:202.175.xxx.xxx 未訂閱
netsh interface ip set address name="區域連線" source=dhcp 我想用delphi 運行上述的命令,編寫了兩行代碼如下,請問為甚麼運行後沒有把我的區域連線設為dhcp. Str:='netsh interface ip set address name="區域連線" source=dhcp'; ShellExecute(0,'open',PChar(Str),nil,nil,sw_showdefault);
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-19 11:27:16 IP:218.15.xxx.xxx 未訂閱
chrislao您好: 改成这样试试  
 procedure TForm1.Button5Click(Sender: TObject);
var
  str:string;
begin
  Str:='netsh interface ip set address name="區域連線" source=dhcp';
  Winexec(PChar(Str),sw_showdefault);
end;
============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-19 11:44:28 IP:61.230.xxx.xxx 未訂閱
chrislao 您好:    我剛才試了一下,發現 netsh.exe 是 Console mode 的程式,console program 在使用 ShellExecute() 時可以透過 cmd.exe 來執行,也就是將 Str 字串設成下列這個樣子: Str:='cmd.exe /c netsh interface ip set address name="區域連線" source=dhcp'; 您試試看吧。 7 天天敲鍵盤 v 時時按滑鼠 8
chrislao
初階會員


發表:86
回覆:69
積分:36
註冊:2002-12-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-19 11:59:53 IP:202.175.xxx.xxx 未訂閱
還是不行;    procedure TForm1.Button5Click(Sender: TObject); var   str:string; begin   Str:='netsh interface ip set address name="區域連線" source=dhcp';   Winexec(PChar(Str),sw_showdefault); end; 就可以        
引言: chrislao 您好: 我剛才試了一下,發現 netsh.exe 是 Console mode 的程式,console program 在使用 ShellExecute() 時可以透過 cmd.exe 來執行,也就是將 Str 字串設成下列這個樣子: Str:='cmd.exe /c netsh interface ip set address name="區域連線" source=dhcp'; 您試試看吧。 7 天天敲鍵盤 v 時時按滑鼠 8
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-19 15:13:55 IP:218.15.xxx.xxx 未訂閱
chrislao您好: 用winexec可以那怎么不用? 如果非得用ShellExecute,可参考: uses shellapi;
procedure TForm1.Button6Click(Sender: TObject);
var
  str:string;
begin
  Str:='interface ip set address name="本地连接" source=dhcp';
  ShellExecute(handle,'','netsh.exe ',PChar(Str),nil,sw_show);
end;
试试看 <> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
chrislao
初階會員


發表:86
回覆:69
積分:36
註冊:2002-12-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-19 18:09:24 IP:202.175.xxx.xxx 未訂閱
sorry ,我的意思是winexec可以, shellexecute就不行    
引言: chrislao您好: 用winexec可以那怎么不用? 如果非得用ShellExecute,可参考: uses shellapi;
procedure TForm1.Button6Click(Sender: TObject);
var
  str:string;
begin
  Str:='interface ip set address name="本地连接" source=dhcp';
  ShellExecute(handle,'','netsh.exe ',PChar(Str),nil,sw_show);
end;
试试看 <> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ < face="Verdana, Arial, Helvetica">
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-19 20:05:16 IP:61.230.xxx.xxx 未訂閱
chrislao 您好:    我使用的是 BCB,設定如下可以執行:
AnsiString Str ="/c netsh interface ip set address name=\"區域連線\" source=dhcp";
ShellExecute(0,"open", "cmd.exe", Str.c_str(), NULL, SW_SHOWDEFAULT);
我手邊沒有 Delphi,無法測試 Delphi 語法敘述,我試著比照上述寫法修改您原先的敘述如下: Str:='/c netsh interface ip set address name="區域連線" source=dhcp'; ShellExecute(0, 'open', 'cmd.exe',PChar(Str), nil, sw_showdefault); 不知道這樣設定是否可在 Delphi 上正確執行?您試試看吧。 7 天天敲鍵盤 v 時時按滑鼠 8
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-19 20:25:53 IP:59.32.xxx.xxx 未訂閱
引言: sorry ,我的意思是winexec可以,<--误会了,我知道您是说> ><--您试过我下面所> <>< face="Verdana, Arial, Helvetica">引言: chrislao您好: 用winexec可以那怎么不用? 如果非得用ShellExecute,可参考: uses shellapi;
procedure TForm1.Button6Click(Sender: TObject);
var
  str:string;
begin
  Str:='interface ip set address name="本地连接" source=dhcp';
  ShellExecute(handle,'','netsh.exe ',PChar(Str),nil,sw_show);
end;
试试看 <> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ < face="Verdana, Arial, Helvetica">
============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
chrislao
初階會員


發表:86
回覆:69
積分:36
註冊:2002-12-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-20 11:42:26 IP:202.175.xxx.xxx 未訂閱
謝謝deity兄,現在連shellexecute都可以了,但想請問ShellExecute(handle,'','netsh.exe ',PChar(Str),nil,sw_show); 是甚麼意思,和shellexecute和winexec有甚麼分別.
引言:
引言: sorry ,我的意思是winexec可以,<--误会了,我知道您是说> ><--您试过我下面所> <>< face="Verdana, Arial, Helvetica">引言: chrislao您好: 用winexec可以那怎么不用? 如果非得用ShellExecute,可参考: uses shellapi;
procedure TForm1.Button6Click(Sender: TObject);
var
  str:string;
begin
  Str:='interface ip set address name="本地连接" source=dhcp';
  ShellExecute(handle,'','netsh.exe ',PChar(Str),nil,sw_show);
end;
试试看 <> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ < face="Verdana, Arial, Helvetica">
============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
系統時間:2024-05-03 0:47:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!