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

TI-Anderson

Pergunta

Boa noite pessoal, venho aqui trazer para vocês os mestres da programação minha pequena duvida kkkk, então primeiramente quero deixa claro que sou novato em delphi, codo em outras linguagens então ai vai a pergunta...
Eu tenho um soft de conexão reversa, ate ai simples. O que ele faz é o seguinte, ele tira print do client e envia pro serve, porem o meu click não esta muito bem alinhado vamos supor eu clico em uma determinada região e ele clica bem abaixo... como eu faco pra saber essa diferença de acordo com a resolução de cada pc (ou seja a resolução pode mudar...) vo enviar a função do click.

**OBS: Tenho um scrolbox aqui com um image que já redimensiona perfeitamente na hora de exibir a imagem para min... PEÇO EXPLICAÇÕES COM O MAXIMO DE DETALHES POSSÍVEIS OBG ! e desculpem-me a ignorância de não saber mt bem delphi ainda....

procedure TfrmOperador.Image1Click(Sender: TObject);
var
  posx, posy: String;
begin
  posx:=inttostr(Mouse.CursorPos.x);
  posy:= inttostr(Mouse.CursorPos.y);

  SServer.Socket.Connections[0].SendText('<CLICK>'+'<'+Posx+'>'+'['+PosY+']');
end;

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

neste caso estou tirando print da tela toda, do desktop ! eu tiro a print com o client e envio pro serve e ele exibe pra min no meu image. já esta fazendo isso, porem eu quero enviar o meu click do serve para o client em determinada regiao,... EX: quero clica em uma uma pasta para abrir ela e ele esta clicando na pasta de baixo, como se tivesse desalinhado na resolucao... ou enviando o click com alguma diferenca...

 

~ SERVIDOR :

 procedure TfrmOperador.Image1DblClick(Sender: TObject);
begin
  If (recConfig.MOUSE = True) Then
  Begin
//    SServer.Socket.Connections[0].SendText('<|MouseDC|>');
    sserver.Socket.Connections[0].SendText('<|MouseDC|>'+intToStr(posx)+'<|>'+intToStr(posy)+'<<|');
  End;
end;
 no meu client esta do seguinte modo o click e o duplo click, no caso é apenas um procedure...

~ CLIENT
procedure TForm1.CSRead(Sender: TObject; Socket: TCustomWinSocket);
var
  sMSG: String;
  iPosicao, iPosicao2, iPosicao3: Integer;
  Pt: TPoint;
  PosX, PosY: String;
begin
  sMSG := Socket.ReceiveText;

  // COMANDO PARA ENVIAR / RECEBER A FOTO
  iPosicao := Pos('<IMAGEM>', sMSG);
  If (iPosicao > 0) Then
  Begin
    ImagemStream:=TMemoryStream.Create;
    CapturaTela(ExtractFilePath(Application.ExeName)+'Tela.JPEG', StrToInt(Copy(sMSG, 09, 02)));
    ImagemStream.Position:=0;
    Socket.SendText(inttostr(ImagemStream.Size) + '<|TAMANHO_FOTO|>');
    Sleep(100);
    Socket.SendStream(ImagemStream);
  end;

  iPosicao := Pos('<CLICK>', sMSG);
  If (iPosicao > 0) Then
  Begin
    iPosicao2 := Pos('><', sMSG);
    iPosicao3 := Pos('>[', sMSG);

    PosX := Copy(sMSG, iPosicao2+2, iPosicao3-iPosicao2-2);
    PosY := Copy(sMSG, iPosicao3+2, Length(sMSG)-1);
    PosY := StringReplace(PosY, ']', '', []);

    Pt := ClientToScreen(Pt);
    Pt.x := Round(StrToInt(PosX) * (65535 / Screen.Width));
    Pt.y := Round(StrToInt(PosY) * (65535 / Screen.Height));
    {Move o mouse}
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
    {Simula o pressionamento do botãoesquerdo do mouse}
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0);
    { Simula soltando o botãoesquerdo do mouse }
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0);
  End;

  iPosicao := Pos('<|MouseDC|>', sMSG);
  If (iPosicao > 0) Then
  Begin
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Sleep(10);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    Sleep(10);
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Sleep(10);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
  End;
end;

 

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.1k
    • Posts
      651.8k
×
×
  • Criar Novo...