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

Prog. Q Axecuta Um Comando De Outro Prog.


vacora

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0

cara até da mais é bem complicado, você teria

que pegar o nome da classe da janela do discador, e a classe do botão

que faz a conexão....

ai você teria de enumerar os objetos dentro da janela do discador, armazenar o handle do botão de conectar em uma variável tipo assim...

Como pegar a classe dos objetos de uma determinada janela?

Existe vários programinhas que fazem isso, eu recomendo o Greatis WinDowse procura em sites de download ou sites de busca, qualquer coisa manda mensagem que te envio

este exemplo seria pra simular um clique do mouse emcima do botão conectar do discador, segundo o que você disse acho q seria isso não é?....

adicione essas variáveis globais

var

ConectaBtn: HWND;

buff: Array[0..1024] of Char;

implementation

function EnumChildProc(Child : HWND): Boolean; Export; Stdcall;

var

TempStr : String;

begin

//Captura nome da classe de cada objeto da janela

//ou seja, pega edits, botoes, imagens etc

GetClassName(Child, buff, SizeOf(buff));

TempStr := StrPas(buff);

//Agora aqui você teria que saber o nome da classe

//do botão de conectar, vamos supor q a classe seja TIgBtn

//ai é armazenado na variável ConectaBtn o Handle do botão

if UpperCase(TempStr) = 'TIGBTN' then

ConectaBtn := Child;

Result := True;

end;

Agora pra testar, adiciona um botão no form, no onClick você faz tipo

procedure TForm1.....

var

discador: HWND;

BtnPoint, AtualPoint: TPoint;

R: TRect;

Largura, Altura: integer;

begin

//Para armazenar o handle da janela na variavel discador

//você teria que saber ou o Caption da janela do discador

//ou a classe da janela então usa-se...

discador := FindWindow(CLASSE_AQUI,ou CAPTION da JANELA AQUI); //você pode colocar a classe e o caption ou só um deles, to explicando atoa talvez você saiba mais de qualquer modo auheuae

//Se achar a janela do discador... então...

if (discador > 0) then

begin

//Enumera os objetos da janela e se achar a classe do botao

//que você especificou na funcão enumchildproc então

//vai ser armazenado na variavel ConectaBtn o handle do botao

EnumChildWindows(discador, @EnumChildProc, LongInt(Self));

//agora ativamos a janela, ou seja, pra simular um clique

//do mouse no botão conectar

SetForegroundWindow(discador);

//Zera as variaveis da posição do botão conectar para evitar conflitos

//não é necessário

BtnPoint.X := 0;

BtnPoint.Y := 0;

//captura a posição do botão conectar em relação a tela

Windows.ClientToScreen(ConectaBtn, BtnPoint);

//captura as dimensões do Botão Conectar

GetWindowRect(ConectaBtn, R);

OffsetRect(R, -R.Left, -R.Top);

Largura := R.Right - R.Left;

Altura := R.Bottom - R.Top;

//armazena a posição atual do mouse, para poder voltar na posição

//onde estava

GetCursorPos(AtualPoint);

//Coloca a seta do mouse emcima do botão conectar

SetCursorPos(BtnPoint.X + (Largura div 2), BtnPoint.Y + (Altura div 2));

GetCursorPos(BtnPoint);

//simula o click do mouse emcima do botão conectar

Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, BtnPoint.x, BtnPoint.y, 0, 0);

Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, BtnPoint.x, BtnPoint.y, 0, 0);

//retorna a seta do mouse na posição onde estava

SetCursorPos(AtualPoint.X, AtualPoint.Y);

end

else

//Se ele não achar a janela do discador, ou seja, provavelmente o discador não está aberto, então você pode abrir ele, apenas coloque o caminho correto tipo...

WinExec(PChar(Caminho do Discador aqui)), SW_SHOWNORMAL);

Vale lembrar que esse processo é rápido, o usuário nem percebe o movimento do mouse, é claro, só se o computador for uma carroça eheh

espero q isso ajude, talvez não fosse exatamente isso que você queria fazer mais foi o que eu entendi...

pessoal vocês sabam se tem como um programinha executar o "CONECTAR" do discador ig??por favor preciso muito disso!!

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

puts cara num sei nem como agradecer muito obrigado mesmosério!!mais o único problema é q num manjo nada de programacao biggrin.gif ...mais valeu mesmo a intençao... wink.gif...eu até q fuço no delphi, mas num sei nada tongue.gif ...vou tentar aqui mas qualquer coisa posso te pedir uma forcinha? biggrin.gif ...té + então... wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

opa ajudo sim, tipo eu li seu outro tópico que dizia o porque você queria isso...

então eu fiz pra você o programinha, ai você acerta conforme sua necessidade...

Já fiz com tempo e tal, você coloca a hora, ele executa o discador e conecta mais veja bem, eu baixei a última versão do Discador no site, então acho melhor se você não usa essa versão baixá-la...

Outra coisa, se você mudar o diretório de instalação, então na constante

DiscadorPath =

você muda o caminho onde tá instalado... se usar a padrão já ta certo...

O que você tem que fazer é, colocar a hora e o minuto na qual você quer que o programa auto conecta, exemplo, por padrão já deixei 00:00 ou seja, meia noite...

ai quando dá meia noite, o programa abre o discador, conecta e se fecha automaticamente....

só não esqça de clicar em ativar eheh

testei aqui funciona normal, Windows XP... acredito que não tem nenhum problema se usado em outros windows....

baixa o source ai e compila, e muda conforme sua necessidade...

IG Auto Dialer by Churc - RapidShare.de

espero ter ajudado

abraços

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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...