Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como usar esta funçao


FodasticC

Pergunta

Bom pessoal estou tentando usar o comando

WinExec('cmd.exe /c netsh interface ip set address name=“conexaolocal” static 10.76.1.54 255.255.255.0 10.76.1.1 1',SW_normal);

ele até roda mais não faz efeito nenhum. já troquei o nome da conexao local e tudo e nada funciona,se eu tento pelo netsh.exe direto ,funciona normal.

estou precisando disto pois no meu trabalho preciso toda hora trocar o ip pois entro na velox e na rede interna e para acessar a velox eu preciso por o ip ,e quero simplificar isso pra deixar só no click do programa fazer automatico. o sistema operacional é win7 e D7.

andei pesquisando e achei este exemplo mais não sei como por a funcionar, parece que precisa da wmi library eu procurei mais não acho para download.ai tem que usar o Win32_NetworkAdapterConfiguration para por o EnableStatic method.

function ArrayToVarArray(Arr : Array Of string):OleVariant; overload;

var

i : integer;

begin

Result :=VarArrayCreate([0, High(Arr)], varVariant);

for i:=Low(Arr) to High(Arr) do

Result:=Arr;

end;

function ArrayToVarArray(Arr : Array Of Word):OleVariant;overload;

var

i : integer;

begin

Result :=VarArrayCreate([0, High(Arr)], varVariant);

for i:=Low(Arr) to High(Arr) do

Result:=Arr;

end;

procedure SetStaticIP;

const

wbemFlagForwardOnly = $00000020;

var

FSWbemLocator : OLEVariant;

FWMIService : OLEVariant;

FWbemObjectSet: OLEVariant;

FWbemObject : OLEVariant;

oEnum : IEnumvariant;

iValue : LongWord;

vIPAddress : OleVariant;

vSubnetMask : OleVariant;

vDefaultIPGateway : OleVariant;

vGatewayCostMetric : OleVariant;

begin

FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');

FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);

oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;

while oEnum.Next(1, FWbemObject, iValue) = 0 do

begin

vIPAddress := ArrayToVarArray(['192.168.1.141']);

vSubnetMask := ArrayToVarArray(['255.255.255.0']);

if FWbemObject.EnableStatic(vIPAddress, vSubnetMask) = 0 then

begin

vDefaultIPGateway := ArrayToVarArray(['192.168.1.100']);

vGatewayCostMetric := ArrayToVarArray([1]);

FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);

end;

VarClear(vIPAddress);

VarClear(vSubnetMask);

VarClear(vDefaultIPGateway);

VarClear(vGatewayCostMetric);

FWbemObject:=Unassigned;

end;

end;

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0

andei pesquisando e achei este exemplo mais não sei como por a funcionar

Não basta somente copiar, tem que entender ... ~veja a correção no código

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj, ActiveX, StdVcl;  // <<<   faltou 

function ArrayToVarArray(Arr : Array Of string):OleVariant; overload;
var
 i : integer;
begin
   Result   :=VarArrayCreate([0, High(Arr)], varVariant);
   for i:=Low(Arr) to High(Arr) do
   Result[i]:=Arr[i];
end;

function ArrayToVarArray1(Arr : Array Of Word):OleVariant;overload;  // << nome da função
var
 i : integer;
begin
   Result   :=VarArrayCreate([0, High(Arr)], varVariant);
   for i:=Low(Arr) to High(Arr) do
   Result[i]:=Arr[i];
end;

procedure  SetStaticIP;
const
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService   : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject   : OLEVariant;
  oEnum         : IEnumvariant;
  iValue        : LongWord;
  vIPAddress         : OleVariant;
  vSubnetMask        : OleVariant;
  vDefaultIPGateway  : OleVariant;
  vGatewayCostMetric : OleVariant;
begin
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    vIPAddress   := ArrayToVarArray(['192.168.1.141']);
    vSubnetMask  := ArrayToVarArray(['255.255.255.0']);
    if FWbemObject.EnableStatic(vIPAddress, vSubnetMask) = 0 then
    begin
      vDefaultIPGateway  := ArrayToVarArray(['192.168.1.100']);
      vGatewayCostMetric := ArrayToVarArray1([1]);  //  <<  alterar aqui
      FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);
    end;
    VarClear(vIPAddress);
    VarClear(vSubnetMask);
    VarClear(vDefaultIPGateway);
    VarClear(vGatewayCostMetric);
    FWbemObject:=Unassigned;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   SetStaticIP;
end;

end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

obrigado pela ajuda amigo,consegui da forma que você explicou, agora estou fazendo pra por em DCHP + da este erro: [Error] Unit1.pas(12): Unsatisfied forward or external declaration: 'TForm1.Button1Click'..

como ficou:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj, ActiveX, StdVcl; // <<< faltou

function ArrayToVarArray(Arr : Array Of string):OleVariant; overload;

var

i : integer;

begin

Result :

=VarArrayCreate([0, High(Arr)], varVariant);

for i:=Low(Arr) to High(Arr) do

Result:=Arr;

end;

function ArrayToVarArray1(Arr : Array Of Word):OleVariant;overload; // << nome da função

var

i : integer;

begin

Result :=VarArrayCreate([0, High(Arr)], varVariant);

for i:=Low(Arr) to High(Arr) do

Result:=Arr;

end;

procedure SetStaticIP;

const

wbemFlagForwardOnly = $00000020;

var

FSWbemLocator : OLEVariant;

FWMIService : OLEVariant;

FWbemObjectSet: OLEVariant;

FWbemObject : OLEVariant;

oEnum : IEnumvariant;

iValue : LongWord;

begin

FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');

FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);

oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;

while oEnum.Next(1, FWbemObject, iValue) = 0 do

begin

FWbemObject.EnableDHCP();

FWbemObject:=Unassigned;

end;

end;

end.

outra duvida, estou tentando por 1 caixa de edit pra mim digitar o ip em vez de por o ip direto.exemplo :

vIPAddress := ArrayToVarArray(['192.168.1.141]); em vez de deixar esse ip pra sempre, colocar a caixa e deixar que eu ou alguém digite o ip que quiser.

Editado por FodasticC
Link para o comentário
Compartilhar em outros sites

  • 0

não testei, mas tente ai

if FWbemObject.EnableStatic(vIPAddress, vSubnetMask) = 0 then
    begin
      vDefaultIPGateway  := ArrayToVarArray(['192.168.1.100']);
      vGatewayCostMetric := ArrayToVarArray1([1]);
      FWbemObject.ReleaseDHCPLease();
      FWbemObject.EnableDHCP();
      FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);
    end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

muito obrigado amigo, você é fera d+ só falta isto, ArrayToVarArray(['192.168.1.141']); em vez de deixar esse ip pra sempre, colocar a caixa de texto e deixar que eu ou alguém digite o ip que quiser.

se quiser pode me dar só dicas para eu pesquisar e fazer.

achei esta funçao:

procedure TForm1.Edit1Change(Sender: TObject);

var

Editt:string;

begin

Editt := edit1.text;

end;

end.

diz que o que foi colocado na caixa de texto vai para onde estiver escrito Editt. mais não funciona até compila sem erros mais não muda em nada.

ai eu tentei por

vIPAddress := ArrayToVarArray(['Editt]);

e esta função mais não adiantou

Editado por FodasticC
Link para o comentário
Compartilhar em outros sites

  • 0

tente assim

procedure  SetStaticIP;
const
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService   : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject   : OLEVariant;
  oEnum         : IEnumvariant;
  iValue        : LongWord;
  vIPAddress         : OleVariant;
  vSubnetMask        : OleVariant;
  vDefaultIPGateway  : OleVariant;
  vGatewayCostMetric : OleVariant;
begin
  //Edit1.Text := '192.168.1.141'
  //Edit2.Text := '192.168.1.100'

  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    vIPAddress   := ArrayToVarArray(['+Edit1.Text+']);
    vSubnetMask  := ArrayToVarArray(['255.255.255.0']);
    if FWbemObject.EnableStatic(vIPAddress, vSubnetMask) = 0 then
    begin
      vDefaultIPGateway  := ArrayToVarArray(['+Edit2.Text+']);
      vGatewayCostMetric := ArrayToVarArray1([1]);  //  <<  alterar aqui
      FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);
    end;
    VarClear(vIPAddress);
    VarClear(vSubnetMask);
    VarClear(vDefaultIPGateway);
    VarClear(vGatewayCostMetric);
    FWbemObject:=Unassigned;
  end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

voce vai colocar no form 2 edits ( Edit1.text e Edit2.Text )

em cada um deles voce vai digitar o ip que voce quiser

exemplo:

Edit1.Text := '192.168.1.141';

Edit2.Text := '192.168.1.100';

ao clicar no botão os valores serão passados por referencia a função ... entendeu ?

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

achei que voce iria saber como alterar, mas de qualquer modo eis a correção

unit UIP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj, ActiveX, StdVcl;  // <<<   faltou

function ArrayToVarArray(Arr : Array Of string):OleVariant; overload;
var
i : integer;
begin
   Result   :=VarArrayCreate([0, High(Arr)], varVariant);
   for i:=Low(Arr) to High(Arr) do
   Result[i]:=Arr[i];
end;

procedure  SetStaticIP;
const
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService   : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject   : OLEVariant;
  oEnum         : IEnumvariant;
  iValue        : LongWord;
  vIPAddress         : OleVariant;
  vSubnetMask        : OleVariant;
  vDefaultIPGateway  : OleVariant;
  vGatewayCostMetric : OleVariant;
begin
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    vIPAddress   := ArrayToVarArray([Form1.Edit1.Text]); // <<<<<<<<<<<<<
    vSubnetMask  := ArrayToVarArray(['255.255.255.0']);
    if FWbemObject.EnableStatic(vIPAddress, vSubnetMask) = 0 then
    begin
      vDefaultIPGateway  := ArrayToVarArray([Form1.Edit2.Text]);  //  <<<<<<<<<<<<
      vGatewayCostMetric := ArrayToVarArray(['1']);  //  <<  alterar aqui
      FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);
    end;
    VarClear(vIPAddress);
    VarClear(vSubnetMask);
    VarClear(vDefaultIPGateway);
    VarClear(vGatewayCostMetric);
    FWbemObject:=Unassigned;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   SetStaticIP;
end;

end.

OBS: Veja que eu tirei uma das function para que não ocorrece o erro de tipos não correpondentes nessa lina

FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

obrigado amigao, você é fera. funcionou legal. só falta o DNS, ve onde estou errando, estou colocando assim

procedure SetStaticIP;

const

wbemFlagForwardOnly = $00000020;

var

FSWbemLocator : OLEVariant;

FWMIService : OLEVariant;

FWbemObjectSet: OLEVariant;

FWbemObject : OLEVariant;

oEnum : IEnumvariant;

iValue : LongWord;

vIPAddress : OleVariant;

vDNSAddress : OleVariant;

vSubnetMask : OleVariant;

vDefaultIPGateway : OleVariant;

vGatewayCostMetric : OleVariant;

begin

FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');

FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);

oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;

while oEnum.Next(1, FWbemObject, iValue) = 0 do

begin

vIPAddress := ArrayToVarArray([Form1.Edit1.Text]); // <<<<<<<<<<<<<

vSubnetMask := ArrayToVarArray(['255.255.255.0']);

vDNSAddress := ArrayToVarArray(['192.168.20.5']);

if FWbemObject.EnableStatic(vIPAddress, vSubnetMask,vDNSAddress) = 0 then

begin

vDefaultIPGateway := ArrayToVarArray([Form1.Edit2.Text]); // <<<<<<<<<<<<

vGatewayCostMetric := ArrayToVarArray(['1']); // << alterar aqui

FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);

end;

VarClear(vIPAddress);

VarClear(vDNSAddress);

VarClear(vSubnetMask);

VarClear(vDefaultIPGateway);

VarClear(vGatewayCostMetric);

FWbemObject:=Unassigned;

end;

end;

outra pergunta, como você sabia que tinha um Tbuton ao ver a funçao

function ArrayToVarArray(Arr : Array Of string):OleVariant; overload;

var

i : integer;

begin

Result :=VarArrayCreate([0, High(Arr)], varVariant);

for i:=Low(Arr) to High(Arr) do

Result:=Arr;

end;

function ArrayToVarArray(Arr : Array Of Word):OleVariant;overload;

var

i : integer;

begin

Result :=VarArrayCreate([0, High(Arr)], varVariant);

for i:=Low(Arr) to High(Arr) do

Result:=Arr;

end;

procedure SetStaticIP;

const

wbemFlagForwardOnly = $00000020;

var

FSWbemLocator : OLEVariant;

FWMIService : OLEVariant;

FWbemObjectSet: OLEVariant;

FWbemObject : OLEVariant;

oEnum : IEnumvariant;

iValue : LongWord;

vIPAddress : OleVariant;

vSubnetMask : OleVariant;

vDefaultIPGateway : OleVariant;

vGatewayCostMetric : OleVariant;

begin

FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');

FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);

oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;

while oEnum.Next(1, FWbemObject, iValue) = 0 do

begin

vIPAddress := ArrayToVarArray(['192.168.1.141]);

vSubnetMask := ArrayToVarArray(['255.255.255.0']);

if FWbemObject.EnableStatic(vIPAddress, vSubnetMask) = 0 then

begin

vDefaultIPGateway := ArrayToVarArray(['192.168.1.100']);

vGatewayCostMetric := ArrayToVarArray([1]);

FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);

end;

VarClear(vIPAddress);

VarClear(vSubnetMask);

VarClear(vDefaultIPGateway);

VarClear(vGatewayCostMetric);

FWbemObject:=Unassigned;

end;

end;

Link para o comentário
Compartilhar em outros sites

  • 0

outra pergunta, como você sabia que tinha um Tbuton ao ver a funçao

veja o que voce escreveu

andei pesquisando e achei este exemplo mais não sei como por a funcionar
então, obviamente voce não pesquisou corretamente, pois veria que faltou a chamada da função

procedure TForm1.Button1Click(Sender: TObject);
begin
   SetStaticIP;
end;

só falta o DNS, ve onde estou errando

qual é o comando que salva os valores ???

FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);

pesquise um pouquinho mais e descrobrirá

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

não funciona, onde estou errando ?

var

FSWbemLocator : OLEVariant;

FWMIService : OLEVariant;

FWbemObjectSet: OLEVariant;

FWbemObject : OLEVariant;

oEnum : IEnumvariant;

iValue : LongWord;

vIPAddress : OleVariant;

vSubnetMask : OleVariant;

vDefaultIPGateway : OleVariant;

vGatewayCostMetric : OleVariant;

vDNSPrim : OleVariant;

begin

FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');

FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=True','WQL',wbemFlagForwardOnly);

oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;

while oEnum.Next(1, FWbemObject, iValue) = 0 do

begin

vIPAddress := ArrayToVarArray([Form1.Edit1.Text]); // <<<<<<<<<<<<<

vSubnetMask := ArrayToVarArray(['255.255.255.0']);

if FWbemObject.EnableStatic(vIPAddress, vSubnetMask, ) = 0 then

begin

vDefaultIPGateway := ArrayToVarArray(['Form1.Edit2.Text']); // <<<<<<<<<<<<

vGatewayCostMetric := ArrayToVarArray(['1']); // << alterar aqui

vDNSPrim := ArrayToVarArray(['192.168.20.5']);

FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric,vDNSPrim);

end;

VarClear(vIPAddress);

VarClear(vSubnetMask);

VarClear(vDefaultIPGateway);

VarClear(vGatewayCostMetric);

VarClear(vDNSPrim);

FWbemObject:=Unassigned;

o dns não muda de jeito nenhum.

Link para o comentário
Compartilhar em outros sites

  • 0

tentei assim e outras formas + dá o seguinte erro: DNSprim not supported by automation object

begin

vIPAddress := ArrayToVarArray([Form1.Edit1.Text]); // <<<<<<<<<<<<<

vSubnetMask := ArrayToVarArray(['255.255.255.0']);

if FWbemObject.EnableStatic(vIPAddress, vSubnetMask, ) = 0 then

begin

vDefaultIPGateway := ArrayToVarArray(['Form1.Edit2.Text']); // <<<<<<<<<<<<

vGatewayCostMetric := ArrayToVarArray(['1']); // << alterar aqui

FWbemObject.SetGateways(vDefaultIPGateway,vGatewayCostMetric);

begin

vDNSprim := ArrayToVarArray(['192.168.20.5']);

FWbemObject.DNSPrim (vDNSPrim);

end;

Editado por FodasticC
Link para o comentário
Compartilhar em outros sites

  • 0

amigo, parece que voce tem dificuldades com o ingles ... certo ? então procure usar o tradutor do Google para poder entender do que se trata

no link tem varios exemplos e um deles é:

Para obter Configurações do adaptador WiFi TcpIp (IPv4) usar a classe WiFi_AdapterTcpIpSettings

procedure  GetWiFi_AdapterTcpIpSettingsInfo;  

02 const 
03   WbemUser            ='';  
04   WbemPassword        ='';  
05   WbemComputer        ='localhost';  
06   wbemFlagForwardOnly = $00000020;  
07 var 
08   FSWbemLocator : OLEVariant;  
09   FWMIService   : OLEVariant;  
10   FWbemObjectSet: OLEVariant;  
11   FWbemObject   : OLEVariant;  
12   oEnum         : IEnumvariant;  
13   iValue        : LongWord;  
14 begin;  
15   FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');  
16   FWMIService   := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);  
17   FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM iFi_AdapterTcpIpSettings','WQL',wbemFlagForwardOnly);  
18   oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;  
19   while oEnum.Next(1, FWbemObject, iValue) = 0 do 
20   begin 
21     Writeln(Format('Caption           %s',[FWbemObject.Caption]));// String  
22     Writeln(Format('DefaultGateway    %s',[FWbemObject.DefaultGateway]));// String  
23     Writeln(Format('Description       %s',[FWbemObject.Description]));// String  
24     Writeln(Format('DHCP_IP           %s',[FWbemObject.DHCP_IP]));// Boolean  
25     Writeln(Format('DHCP_WINS         %s',[FWbemObject.DHCP_WINS]));// Boolean  
26     Writeln(Format('DhcpServer        %s',[FWbemObject.DhcpServer]));// String  
27     Writeln(Format('DhcpSubnetMask    %s',[FWbemObject.DhcpSubnetMask]));// String  
28     Writeln(Format('DNS               %s',[FWbemObject.DNS]));// Boolean  
29     Writeln(Format('DNSPrim           %s',[FWbemObject.DNSPrim]));// String  
30     Writeln(Format('DNSSec            %s',[FWbemObject.DNSSec]));// String  
31     Writeln(Format('Domain            %s',[FWbemObject.Domain]));// String  
32     Writeln(Format('IPAddress         %s',[FWbemObject.IPAddress]));// String  
33     Writeln(Format('ScopeID           %s',[FWbemObject.ScopeID]));// String  
34     Writeln(Format('SettingID         %s',[FWbemObject.SettingID]));// String  
35     Writeln(Format('WINSPrim          %s',[FWbemObject.WINSPrim]));// String  
36     Writeln(Format('WINSSec           %s',[FWbemObject.WINSSec]));// String  
37     FWbemObject:=Unassigned;  
38   end;  

39 end;

OBS: Mudar o DNS requer mudança no registry do windows

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

me sinto até envergonhado de voltar dizendo que não consegui,tentei de varias formas,compila mais não troca o dns, os outros mudam normal.estou desde a hora que você postou esses ultimos 2 topicos, e nada. tentei só com esta funçao que esta funçao:

uses Registry;

procedure

SaveStringToRegistry_LOCAL_MACHINE(

sKey, sItem, sVal : string );

var

reg : TRegIniFile;

begin

reg := TRegIniFile.Create( '' );

reg.RootKey := HKEY_LOCAL_MACHINE;

reg.WriteString(

sKey, sItem, sVal + #0 );

reg.Free;

end;

procedure

SetTCPIPDNSAddresses(

sIPs : string );

begin

//

// if using Windows NT

//

SaveStringToRegistry_LOCAL_MACHINE(

'SYSTEMCurrentControlSet' +

'ServicesTcpipParameters',

'NameServer',

sIPs );

end;

e nada. é ruim d+ quando fica tentando e não consegue rsrs.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...