Fórum Monitorar processo de conexão (RNAAPP) #220617

17/03/2004

0

[b:9a3440ed13]Caro amigos do Clube, alguem sabe como posso identificar uma chamada ao dial-up do windows, antes de fazer uma conexão?

Tipo assim , deixaria um programa meu em execução (monitorando)...quando o usuário clicar no dial-up ou em qualquer discador para se conectar na internet, meu monitor detectaria e mostraria para o usuário um form com pedido de senha, caso essa senha fosse digitada errada eu mataria o processo de conexão, senão liberaria a conexão com a net......

Notei que em Windows 9x, toda vez que chamo um discador, é executado um tal de Rnaapp, e é esse programa que quero monitorar e matar se for o caso, mas não sei como?

Se puderem me ajudar...

Valeu ..um abraço

Alessandro[/b:9a3440ed13]

[b:9a3440ed13][color=red:9a3440ed13]Título editado pelo Moderador (AZ) - Removido: ´Urgente´[/color:9a3440ed13][/b:9a3440ed13]


Analyst

Analyst

Responder

Posts

17/03/2004

Analyst

Ninguem sabe?

Por favor me ajudem.....


Responder

Gostei + 0

20/03/2004

Wagsilvasilva

Cara, tipo assim, naum entendo quase nada de delphi. Mas sei que existem programas que mostram as tarefas e os processos que estão em execução no sistema. Talvez se tu encontrasse algum pela web e tentasse conseguir o fonte acho que resolveria o teu problema. Ou então que tu baixe este programa e tente entrar em contato com o autor também seria uma outra alternativa.

é isso
Wagner


Responder

Gostei + 0

20/03/2004

Analyst

Cara, tipo assim, naum entendo quase nada de delphi. Mas sei que existem programas que mostram as tarefas e os processos que estão em execução no sistema. Talvez se tu encontrasse algum pela web e tentasse conseguir o fonte acho que resolveria o teu problema. Ou então que tu baixe este programa e tente entrar em contato com o autor também seria uma outra alternativa. é isso Wagner


[b:b49bf9d944]Obrigado wagsilvasilva, por ser o unico a pelo menos tentar me ajudar.

Com muita persistenca e horas a fim, consegui saber a classe do Rnaapp e consegui o meu objetivo, pelo menos para windows 9x, ME, falta ainda descobrir como fazer isso pra NT e XP, quem sabe alguem do forum sabe para esse ambiente operacional né...

Como gosto de ajudar to disponibilizando o que descobri...valeu carinha.

if FindWindow(´RnaEngCLASS´, nil) > 0 then // se Rnaapp foi executado
PostMessage(FindWindow(´RnaEngCLASS´, nil), WM_CLOSE,0,0); // fecho o aplicativo[/b:b49bf9d944]


Responder

Gostei + 0

21/03/2004

Tatuweb

Você pode controlar conexões com a Internet por meio do programa rasdial.exe. Vou mostrar abaixo como o programa funciona e depois mostrar como usá-lo no Delphi.

Toda conexão (acesso discado) com a Internet é feita via rasdial.exe. Se você for até o prompt do ms-dos e digitar:

C:\rasdial nome_da_conexao usuario senha


você irá se conectar e os dois computadores ao lado do relógio será exibido. Ex:

C:\rasdial IG tatuweb 123456


irá chamar a conexão IG existente no computador e irá logar se no provedor como usuário tatuweb e senha 123456.

Para se disconectar basta fazer o seguinte:

C:\rasdial IG /DISCONNECT


Se vc fizer isso no MS-DOS verá que todas as mensagens que aparecem na janela de conexão de rede dial-up vão aparecer no prompt. Ex: Linha ocupada, senha/usuário inválido, etc...

Dito isso, vc pode usar o seguinte comando no Delphi para se conectar a um provedor:

ShellExecute (Self.Handle, PChar (´open´), PChar (´rasdial.exe´), PChar (´IG tatuweb 123456´), PChar (´C:´), SW_SHOWMINNOACTIVE);


e usar o seguinte para se desconectar:

ShellExecute (Self.Handle, PChar (´open´), PChar (´rasdial.exe´), PChar (´IG /DISCONNECT´), PChar (´C:´), SW_SHOWMINNOACTIVE);


Para o código acima funcionar é necessário declarar a cláusula uses a unit ShellAPI.

A minha idéia é usar uma rotina para pegar as informações vindas do ms-dos para usar na aplicação. Ex:

  ShellExecute (Self.Handle, PChar (´open´), PChar (´rasdial.exe´), PChar (´IG /DISCONNECT´), PChar (´C:´), SW_SHOWMINNOACTIVE);
  if MsgRetornadaPeloDOS <> ´Não existe conexões´ then
    // Sinal que o usuário está conectado
    // logo vou exibir uma caixa de dialogo pedindo senha
    // se ñ tiver executo o comando para desconecta-lo


Essa rotina poderia estar dentro de um componente Timer, de preferencia com uma thread criada so para fazer essa monitoração para evitar que a performance do programa seja afetada. O fato é que não descobri como pegar essas informações do prompt do DOS.

Bem essa foi uma idéia e quem sabe o inicio de uma solucão. De repente o código pode ser melhorado ou vc pode implementar outra ideia. Só pra finalizar o rasdial.exe não fica na lista de processos como o rnapp e não sei se os comandos acimas são aceitos no Win 9x (No ME, XP e 2000 são aceitos).


Responder

Gostei + 0

21/03/2004

Analyst

Você pode controlar conexões com a Internet por meio do programa rasdial.exe. Vou mostrar abaixo como o programa funciona e depois mostrar como usá-lo no Delphi. Toda conexão (acesso discado) com a Internet é feita via rasdial.exe. Se você for até o prompt do ms-dos e digitar:
C:\rasdial nome_da_conexao usuario senha
você irá se conectar e os dois computadores ao lado do relógio será exibido. Ex:
C:\rasdial IG tatuweb 123456
irá chamar a conexão IG existente no computador e irá logar se no provedor como usuário tatuweb e senha 123456. Para se disconectar basta fazer o seguinte:
C:\rasdial IG /DISCONNECT
Se vc fizer isso no MS-DOS verá que todas as mensagens que aparecem na janela de conexão de rede dial-up vão aparecer no prompt. Ex: Linha ocupada, senha/usuário inválido, etc... Dito isso, vc pode usar o seguinte comando no Delphi para se conectar a um provedor:
ShellExecute (Self.Handle, PChar (´open´), PChar (´rasdial.exe´), PChar (´IG tatuweb 123456´), PChar (´C:´), SW_SHOWMINNOACTIVE);
e usar o seguinte para se desconectar:
ShellExecute (Self.Handle, PChar (´open´), PChar (´rasdial.exe´), PChar (´IG /DISCONNECT´), PChar (´C:´), SW_SHOWMINNOACTIVE);
Para o código acima funcionar é necessário declarar a cláusula uses a unit ShellAPI. A minha idéia é usar uma rotina para pegar as informações vindas do ms-dos para usar na aplicação. Ex:
  ShellExecute (Self.Handle, PChar (´open´), PChar (´rasdial.exe´), PChar (´IG /DISCONNECT´), PChar (´C:´), SW_SHOWMINNOACTIVE);
  if MsgRetornadaPeloDOS <> ´Não existe conexões´ then
    // Sinal que o usuário está conectado
    // logo vou exibir uma caixa de dialogo pedindo senha
    // se ñ tiver executo o comando para desconecta-lo
Essa rotina poderia estar dentro de um componente Timer, de preferencia com uma thread criada so para fazer essa monitoração para evitar que a performance do programa seja afetada. O fato é que não descobri como pegar essas informações do prompt do DOS. Bem essa foi uma idéia e quem sabe o inicio de uma solucão. De repente o código pode ser melhorado ou vc pode implementar outra ideia. Só pra finalizar o rasdial.exe não fica na lista de processos como o rnapp e não sei se os comandos acimas são aceitos no Win 9x (No ME, XP e 2000 são aceitos).


[b:01a4c03978]Cara obrigado pela dica, vou ver se consigo estudar esse código e quem sabe resolver isso. Depois te aviso...valeu[/b:01a4c03978]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar