Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael Harth

[Resolvido] Dificuldade do clientsocket ler mensagens

Recommended Posts

Olá galera, meu nome é Rafael Harth. Sou iniciante na área de programação, e estou tendo problemas com um programa que estou desenvolvendo.

Se trata de um software controlador de outra maquiná por internet/Rede.

 

E estou tendo o seguinte problema:

- Envio a mensagem para o ClientSocket, através de um PopupMenu:

 

procedure TForm1.Ativar1Click(Sender: TObject);
begin
 if not assigned(lv.Selected) then exit;
 ss.Socket.connections[LV.ItemIndex].Sendtext('firewall.destroy');
 status.panels[1].text := ' Destruindo Firewall...';
end;

A mensagem é enviada com sucesso e chega até o clientsocket:

procedure TForm1.CSRead(Sender: TObject; Socket: TCustomWinSocket);
var
  dados : string;
begin
  dados := socket.ReceiveText;

   if dados = 'firewall.destroy' then
   begin
   try
   WinExec('netsh firewall set opmode disable',sw_hide);
   socket.sendtext('FireWall Destruido com Sucesso!');
   except
   socket.sendtext('Não foi Possivel Destruir FireWall!');
   end;
   exit;
   end;
No momento que ele recebe a mensagem: 'firewall.destroy', ele deveria executar: netsh firewall set opmode disable, mas não é isso que acontece.

Tenho um procedimento do qual, quando receber uma mensagem que não executa nenhuma ação, somente exibi-lá na tela:

begin
   messageBox(handle,Pchar( dados),'Mensagem Recebida!', mb_ok + mb_iconinformation);
end;

Enfim, ao receber a mensagem: 'firewall.destroy', não é executado o comando: 'netsh firewall set opmode disable', e sim é exibida a mensagem na minha tela.

Esta é minha duvidá, se alguém poder me ajudar, agradecerei muito.

 

Informações: Utilizo Delphi 7, Windows Vista.

 

Obrigado.

 

 

Gostaria de ser respondido, e não julgado como Cracker.

Sou Hacker White Hat, não há malícias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe mas gostaria que evitasse o termo Hacker, inclusive para se classificar. Bom, méritos a parte, Como você disse que está executando este comando no Vista, podemos considerar 1 possibilidade:

O UAC e o sistema de proteção do vista bloqueou seu comando;

 

Gostaria de saber o segunte: Seu cliente recebe a mensagem que diz que o firewall foi destruido com sucesso? Pergunto isto porque eu acho que o WinExec não vai gerar exception alguma em caso de falhas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe mas gostaria que evitasse o termo Hacker, inclusive para se classificar. Bom, méritos a parte, Como você disse que está executando este comando no Vista, podemos considerar 1 possibilidade:

O UAC e o sistema de proteção do vista bloqueou seu comando;

 

Gostaria de saber o segunte: Seu cliente recebe a mensagem que diz que o firewall foi destruido com sucesso? Pergunto isto porque eu acho que o WinExec não vai gerar exception alguma em caso de falhas...

 

Já resolvi meu problema à alguns dias atrás, mesmo assim obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E qual foi a solução?

 

A solução foi deletar o PopupMenu, e criar um Edit e um botão, em que eu possa digitar o código e envia-lo através do botão:

procedure TForm1.Button1Click(Sender: TObject);
begin
if not assigned(lv.Selected) then exit;
ss.Socket.Connections[LV.ItemIndex].SendText(edit1.text);
status.Panels[1].text := 'Mensagem Enviada com Sucesso!';
end;

Não tive alterar o onclientread do ClientSocket.

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.