如何使用Delphi修改无线网卡的IP、子网掩码、默认网关、首选/备用DNS信息? 如何使用Delphi修改无线网卡的IP、子网掩码、默认网关、首选/备用DNS信息?台式机的网卡修改,网上已经搜索到怎么修改了,但对笔记本无线网卡不起作用,怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果LZ会用NETSH命令还是比较好解决的, 用API可能比较复杂 如果使用NETSH命令,那管道怎么搞。就是获得CMD的结果如果是API呢? 获得CMD的结果,记得以前已经回答了n次这个问题了,搜索一下吧,用API不太好搞,关键就是资料不好找,哈哈!(我也没找到成功的,呵呵) unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; MaskEdit1: TMaskEdit; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } FIPAddress: Longint; HIPAddress: HWND; PrevWndProc: TWndMethod; procedure NewWindowProc(var Message: TMessage); public { Public declarations } end;var Form1: TForm1; const IP_ADDRESS_ID: Longword = $0100;implementationuses CommCtrl;{$R *.dfm}{ TForm1 }procedure TForm1.NewWindowProc(var Message: TMessage);var nField: longint;begin case Message.Msg of WM_NOTIFY: begin if PNMHDR(Ptr(Message.lParam)).idFrom = IP_ADDRESS_ID then begin case PNMIPAddress(ptr(Message.lParam)).hdr.code of IPN_FIELDCHANGED: begin if SendMessage(HIPAddress, IPM_ISBLANK, 0, 0) = 0 then SendMessage(HIPAddress, IPM_GETADDRESS, 0, lParam(LPDWORD(@FIPAddress))); end; end; end; end; WM_COMMAND: begin if Message.WParamLo = IP_ADDRESS_ID then case Message.WParamHi of EN_SETFOCUS: begin nField := SendMessage(HIPAddress, IPM_GETADDRESS, 0, lParam(LPDWORD(@FIPAddress))); if nField = 4 then nField := 0; SendMessage(HIPAddress, IPM_SETFOCUS, wParam(nField), 0); end; EN_KILLFOCUS: begin if SendMessage(HIPAddress, IPM_ISBLANK, 0, 0) = 0 then SendMessage(HIPAddress, IPM_GETADDRESS, 0, lParam(LPDWORD(@FIPAddress))); end; EN_CHANGE: begin end; end; end; end; if Assigned(PrevWndProc) then PrevWndproc(Message);end;procedure TForm1.FormCreate(Sender: TObject);var lpInitCtrls: TInitCommonControlsEx;begin lpInitCtrls.dwSize := SizeOf(TInitCommonControlsEx); lpInitCtrls.dwICC := ICC_INTERNET_CLASSES; if InitCommonControlsEx(lpInitCtrls) then begin PrevWndProc := WindowProc; WindowProc := NewWindowProc; HIPAddress := CreateWindowEx(WS_EX_LEFT, WC_IPADDRESS, nil, WS_CHILD + WS_VISIBLE + WS_BORDER + WS_TABSTOP, MaskEdit1.Left, MaskEdit1.Top, MaskEdit1.Width, MaskEdit1.Height, Handle, IP_ADDRESS_ID, HInstance, nil); SendMessage(HIPAddress,IPM_SETFOCUS,0,0); end;end;procedure TForm1.Button1Click(Sender: TObject);begin FIPAddress := MAKEIPADDRESS(127,0,0,1); SendMessage(HIPAddress,IPM_SETADDRESS,0,lParam(DWORD(FIPAddress)));end;procedure TForm1.Button2Click(Sender: TObject);begin SendMessage(HIPAddress,IPM_CLEARADDRESS,0,0);end;end. 一个关于C语言中的类型转PASCAL的问题. 为什么这个语句在sql server中运行正常,而在acess中却提示语法错误? 看看你的水平! 一个奇怪的问题:OpenMutex不能正确找到CreatMutex创建的标志? 有关银行业务? Delphi 入问题!用过 Delphi 的人都会的!请指教! MessageBox 和 TApplication.MessageBox怎么回事?有什么区别? stringgrid装载数据, 高手请进? StringGrid的问题 大家快来看,获益非浅 数据库查询出现错误-" 至少有一个参数没被指定值" 如何在函数里退出程序并完全释放资源
如果是API呢?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
MaskEdit1: TMaskEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
FIPAddress: Longint;
HIPAddress: HWND;
PrevWndProc: TWndMethod;
procedure NewWindowProc(var Message: TMessage);
public
{ Public declarations }
end;var
Form1: TForm1;
const IP_ADDRESS_ID: Longword = $0100;implementation
uses CommCtrl;{$R *.dfm}
{ TForm1 }procedure TForm1.NewWindowProc(var Message: TMessage);
var
nField: longint;
begin
case Message.Msg of
WM_NOTIFY:
begin
if PNMHDR(Ptr(Message.lParam)).idFrom = IP_ADDRESS_ID then
begin
case PNMIPAddress(ptr(Message.lParam)).hdr.code of
IPN_FIELDCHANGED:
begin
if SendMessage(HIPAddress, IPM_ISBLANK, 0, 0) = 0 then
SendMessage(HIPAddress, IPM_GETADDRESS, 0, lParam(LPDWORD(@FIPAddress)));
end;
end;
end;
end;
WM_COMMAND:
begin
if Message.WParamLo = IP_ADDRESS_ID then
case Message.WParamHi of
EN_SETFOCUS:
begin
nField := SendMessage(HIPAddress, IPM_GETADDRESS, 0,
lParam(LPDWORD(@FIPAddress)));
if nField = 4 then nField := 0;
SendMessage(HIPAddress, IPM_SETFOCUS, wParam(nField), 0);
end;
EN_KILLFOCUS:
begin
if SendMessage(HIPAddress, IPM_ISBLANK, 0, 0) = 0 then
SendMessage(HIPAddress, IPM_GETADDRESS, 0, lParam(LPDWORD(@FIPAddress)));
end;
EN_CHANGE:
begin
end;
end;
end;
end;
if Assigned(PrevWndProc) then PrevWndproc(Message);
end;procedure TForm1.FormCreate(Sender: TObject);
var
lpInitCtrls: TInitCommonControlsEx;
begin
lpInitCtrls.dwSize := SizeOf(TInitCommonControlsEx);
lpInitCtrls.dwICC := ICC_INTERNET_CLASSES;
if InitCommonControlsEx(lpInitCtrls) then
begin
PrevWndProc := WindowProc;
WindowProc := NewWindowProc; HIPAddress := CreateWindowEx(WS_EX_LEFT, WC_IPADDRESS, nil,
WS_CHILD + WS_VISIBLE + WS_BORDER + WS_TABSTOP,
MaskEdit1.Left, MaskEdit1.Top, MaskEdit1.Width, MaskEdit1.Height,
Handle, IP_ADDRESS_ID, HInstance, nil);
SendMessage(HIPAddress,IPM_SETFOCUS,0,0);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
FIPAddress := MAKEIPADDRESS(127,0,0,1);
SendMessage(HIPAddress,IPM_SETADDRESS,0,lParam(DWORD(FIPAddress)));
end;procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(HIPAddress,IPM_CLEARADDRESS,0,0);end;end.