Ir para conteúdo

POWERED BY:

Arquivado

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

jcvilanova

Controlando máquinas remotamente

Recommended Posts

Estou tentando fazer um sistema que controle uma máquina remotamente... consegui fazer muita coisa. Agora gostaria de saber se é possível criar um formulário que se sobreponha ao DeskTop do Windows, e que não tenha Barra de título e barra de satatus. E que seja acionado remotamente. Mas, que tenha botão de iniciar, como no Windows, que ao ser clicado, abra um menu suspenso, que contenha ícones de programas como Windows Explorer, NotePad, Word, Excel etc. Como o próprio DeskTop do Windows, mas que contenha os programas que eu quiser, limitando assim a utilização pelo usuário. Gostaria que esse formulário fosse aberto através do programa Cliente( que uso na minha máquina), como uma solicitação, e que o programa servidor (da máquina a aser controlada) ao receber a mensagem automaticamente abra o Form, tipo numa Lan House. Vi aqueles exemplos que desligam o monitor, e gostaria de saber como funcionam esses comandos. Que comando eu deveria mandar? SERIA POSSÍVEL FAZER ISSO? COMO? E COMO CRIAR ESSE FORMULÁRIO E COLOCÁ-LO SOBRE O DESKTOP? Será que alguém poderia me ajudar.Agradeço,João

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso teria que criar o form do tamanho da tela, teria que colocar a propriedade FormStyle como fsStayOnTop, no caso para remover a barra basta colocar a propriedade BorderStyle como bsNone, para deixar sobreposto coloque a propriedade WindowState como wsMaximized.

Outra coisa se quiser fazer é destruir e mostrar a barra de tarefas do windows, fazendo:

 

//Esconderprocedure hideTaskbar;var	wndHandle : THandle;	wndClass : array[0..50] of Char;beginStrPCopy(@wndClass[0], 'Shell_TrayWnd');wndHandle := FindWindow(@wndClass[0], nil);ShowWindow(wndHandle, SW_HIDE); // This hides the taskbarend;//Mostrarprocedure showTaskbar;var 	wndHandle : THandle;	wndClass : array[0..50] of Char;beginStrPCopy(@wndClass[0], 'Shell_TrayWnd');wndHandle := FindWindow(@wndClass[0], nil);ShowWindow(wndHandle, SW_RESTORE); // This restores the taskbarend;

No caso a comunicação você pode fazer usando Socket, isto pode encontrar muitos exemplos na internet e até mesmo aqui no fórum, bastando enviar comandos do servidor para o cliente. Basicamente funciona que você têm um servidor e as máquinas clientes, as clientes se conectam no servidor, você pode enviar comandos para as máquinas, estes comandos você mesmo quem vai definir, quando chegar no cliente, você vai interpretar estes comandos, ou seja, se enviar um comando de DESLIGA_MONITOR o cliente deve de pegar e intepretar este comando e executar o que mandado.

No mais a criação do menu e dos itens que ficam dentro é somente colocando componente e adicionando os itens desejados e chamando os programas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente obrigado, mas ainda estou precisando de sua ajuda, cara encontrei o exemplo a seguir em um site, mas não entendi bulufas....

http://forum.imasters.com.br/public/style_emoticons/default/dormindo.gif você poderia me explicar que rotina é essa e onde ela deve ser inserida? Pertence ao servidor ou no cliente E mais, se quiser acionar meu formulário na estação cliente, o que devo mudar nesse código? Existe mais algum código a ser implementado nas estações Cliente e Servidor?

 

 

procedure TFrmSGRPCServer.ServerSocketClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

MSG, Parametro: string;

begin

MSG:= Socket.ReceiveText;

Info.Lines.Add(Socket.RemoteAddress+' - '+MSG);

Parametro := Copy (MSG, 6, Length (MSG) - 5);

If(Pos('HIni!', MSG)=1)Then Socket.SendText('TEXT!TEXT!'+BotaoIniciar)

else

If(Pos('KMon!', MSG)=1)Then Socket.SendText('TEXT!TEXT!'+KillMonitor)

If(Pos('DOWN!', MSG)=1)Then

Begin

If(FileExists(Parametro))Then

Begin

Socket.SendText ('Down!');

Socket.SendStream(TFileStream.Create(Parametro, fmOpenRead or fmShareDenyWrite));

End

Else

Socket.SendText ('TEXT!TEXT!' + Parametro + ' não encontrado');

End;

agradeceria se me mandasse um e-mail : jpedrovilanova@bol.com.br

Muito obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso como havia especificado anteriormente... você precisa trabalhar da forma Cliente - Servidor, sendo que pelo Servidor você pode enviar os comandos para o Cliente, no qual irá receber os comandos, interpretar e efetuar o que foi mandado.

Isso da mesma forma para acessar o seu formulário, no caso nas máquinas clientes você vai ter este programa Cliente contendo tudo o que deseja, com os forms e tudo mais, mas terá um ClientSocket rodando conectado através de uma porta com o servidor, sendo que do Server você envia os comandos para o Cliente.

Alguns exemplos:

Link1

Link2

Link3

Link4

Muito dos exemplos são exemplos simples... no caso basta você implementar os controles desejados, antes de criar a sua aplicação full, tente fazer um programinha pequeno, somente para entender o real funcionamento do mesmo.

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.