--------------------------------------------------------------------------
str:=format('cmd /k Netsh interface ip set '+
'address "%s" static %s %s %s 1',
['本地连接','192.168.1.101','255.255.255.0','192.168.1.1']); param:=pansichar(str);
winexec('cmd /k c:\devcon.exe -disable *dev_109a*',sw_hide);//1停止连接
winexec(param,sw_hide); //2更改参数
winexec('cmd /k c:\devcon.exe -enable *dev_109a*',sw_hide); //3启动连接
message('更改完成'); //4
-------------------------------------------------------------------------
*dev_109a*,是我的网卡ID,*是通配符。这个在设备管理器中可以查到。上面语句可能完成更改IP的功能。但还存在问题:1、2、3、4好像是并发执行的,4执行完了以后,IP参数还没有改过来,还要等一会才行,等多久就不知道了。问:怎么样让1234顺序执行,保证4执行完后一切就已经正常?
str:=format('cmd /k Netsh interface ip set '+
'address "%s" static %s %s %s 1',
['本地连接','192.168.1.101','255.255.255.0','192.168.1.1']); param:=pansichar(str);
winexec('cmd /k c:\devcon.exe -disable *dev_109a*',sw_hide);//1停止连接
winexec(param,sw_hide); //2更改参数
winexec('cmd /k c:\devcon.exe -enable *dev_109a*',sw_hide); //3启动连接
message('更改完成'); //4
-------------------------------------------------------------------------
*dev_109a*,是我的网卡ID,*是通配符。这个在设备管理器中可以查到。上面语句可能完成更改IP的功能。但还存在问题:1、2、3、4好像是并发执行的,4执行完了以后,IP参数还没有改过来,还要等一会才行,等多久就不知道了。问:怎么样让1234顺序执行,保证4执行完后一切就已经正常?
解决方案 »
- 如何向SysListView32的某一项发送双击动作?
- delphi中怎样才能取得 SQLSever 2000中text 字段类型得值呢?
- 为什么执行以下操作将string转换成pchar返回的值长度>=8位时,才能正常显示?
- DataSet导出至Excel的控件
- 没声音,再好的戏也出不来!--求教Delphi7中Beep的用法?
- 哪位大哥帮忙看下一个软件弹出一个对话框,背面是灰色的,屏幕不能操作,输入后才可用继续
- 来上海有一年了,也没怎么转,有谁能推荐上海附近的好玩地方?
- 谁用过armadillo3.01?
- 开发过工作流软件的弟兄请帮忙谁有可以用于让客户画流程的控件怎么可以买到 要国内的并有中文资料。谢谢
- 今天圣诞节,给大家庆祝一下
- 不用结束进程也可以删除正在使用的程序
- Test
以上代码不是可能,而是一定能实现改IP的功能。经过验证的,XP下面。
------------------------------------------------
function Run(sCommandLine: string): Boolean;
var
lpStartupInfo: TStartupInfo;
lpProcessInformation: TProcessInformation;
begin
FillChar(lpStartupInfo, Sizeof(TStartupInfo), #0);
lpStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
lpStartupInfo.wShowWindow := SW_SHOW;
Result := CreateProcess(nil, PChar(sCommandLine),
nil, nil, True, NORMAL_PRIORITY_CLASS, nil, nil,
lpStartupInfo, lpProcessInformation) and
(WaitForSingleObject(lpProcessInformation.hProcess, 3600000) <> WAIT_FAILED);
end;
------------------------------------------------
现在的问题是,dos窗口需要手动关闭。怎么才能让它自动关闭呢?????