Advertisement
|
[x]
Attachment Details
|
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: |
// The following is from rlibby using his netstate library.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, NetState, IpRtrMib;
type
TForm1 = class(TForm)
Button1: TButton;
NetAdapter1: TNetAdapter;
Memo1: TMemo;
Button2: TButton;
procedure NetAdapter1Connect(Sender: TObject; IntfAdapter: _MIB_IFROW);
procedure NetAdapter1Disconnect(Sender: TObject; IntfAdapter: _MIB_IFROW);
procedure NetAdapter1StateChange(Sender: TObject; IntfAdapter: _MIB_IFROW; LastState, LastAdminState: Cardinal);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure UpdateInfo(Memo: TMemo; Row: _MIB_IFROW);
begin
with Memo do
begin
Lines.Add(Format(' Name: %s', [InterfaceName(Row)]));
Lines.Add(Format(' Operational State: %d', [Row.dwOperStatus]));
Lines.Add(Format(' Admin State: %d', [Row.dwAdminStatus]));
end;
end;
procedure TForm1.NetAdapter1Connect(Sender: TObject; IntfAdapter: _MIB_IFROW);
begin
Memo1.Lines.Add(Format('%s connected', [InterfaceName(IntfAdapter)]));
UpdateInfo(Memo1, IntfAdapter);
end;
procedure TForm1.NetAdapter1Disconnect(Sender: TObject; IntfAdapter: _MIB_IFROW);
begin
Memo1.Lines.Add(Format('%s disconnected', [InterfaceName(IntfAdapter)]));
UpdateInfo(Memo1, IntfAdapter);
end;
procedure TForm1.NetAdapter1StateChange(Sender: TObject; IntfAdapter: _MIB_IFROW; LastState, LastAdminState: Cardinal);
begin
Memo1.Lines.Add(Format('%s state change', [InterfaceName(IntfAdapter)]));
UpdateInfo(Memo1, IntfAdapter);
if InterfaceIsConnected(IntfAdapter) then
Memo1.Lines.Add('-- Connected -- ')
else
Memo1.Lines.Add('-- Disconnected -- ');
end;
procedure TForm1.Button1Click(Sender: TObject);
var dwIndex: Integer;
begin
for dwIndex:=0 to Pred(NetAdapter1.IntfAdapterCount) do
NetAdapter1.DisableIntfAdapter(NetAdapter1[dwIndex]);
end;
procedure TForm1.Button2Click(Sender: TObject);
var dwIndex: Integer;
begin
for dwIndex:=0 to Pred(NetAdapter1.IntfAdapterCount) do
NetAdapter1.EnableIntfAdapter(NetAdapter1[dwIndex]);
end;
end.
//The following uses the Windows XP firewall control ActiveX, hnetcfg.dll and works but ONLY under XP. You // have to import the as an Active X hnetcfg.dll as NETCONLib_TLB and the dll is under system32.
uses
OleServer, NETCONLib_TLB, activeX, ComObj;
procedure TFPCClusterMain.ResetNIC(const aConnection: string);
var
pEnum: IEnumVariant;
vNetCon: OleVARIANT;
dwRetrieved: Cardinal;
pUser: NETCONLib_TLB.PUserType1;
begin
//enabled := false;
try
pEnum := ( NetSharingManager.EnumEveryConnection._NewEnum as IEnumVariant);
while (pEnum.Next(1, vNetCon, dwRetrieved) = S_OK) do
begin
(IUnknown(vNetCon) as INetConnection).GetProperties(pUser);
if pUser.pszwName = aConnection then
begin
(IUnknown(vNetCon) as INetConnection).Disconnect;
(IUnknown(vNetCon) as INetConnection).Connect;
delay(2000);
break;
end;
end;
finally
//enabled := true;
end;
end;
procedure TFPCClusterMain.GetConnectionList(Strings : TStrings);
var
pEnum: IEnumVariant;
vNetCon: OleVARIANT;
dwRetrieved: Cardinal;
pUser: NETCONLib_TLB.PUserType1;
NetCon : INetConnection;
begin
Strings.Clear;
pEnum := ( NetSharingManager.EnumEveryConnection._NewEnum as IEnumVariant);
while (pEnum.Next(1, vNetCon, dwRetrieved) = S_OK) do
begin
(IUnknown(vNetCon) as INetConnection).GetProperties(pUser);
NetCon := (IUnknown(vNetCon) as INetConnection);
if (pUser.Status in [NCS_CONNECTED,NCS_CONNECTING])//remove if you want disabled NIC cards also
and (pUser.MediaType in [NCM_LAN,NCM_SHAREDACCESSHOST_LAN,NCM_ISDN] ) then
begin
//we only want valid network cards that are enabled
Strings.Add(pUser.pszwName );
//IdList.Add(GuidToString(pUser.guidId));
end;
end;
end;
|
|
[x]
The Solution Rating System
|
||
|
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
|
Loading Advertisement... |