Recent

Author Topic: Mostrar pedaços de várias janelas abertas, numa única janela  (Read 843 times)

Marco343

  • Newbie
  • Posts: 4
Aí pessoal.

Já programo há algum tempo mas sou novato com o Lazarus. Tenham paciência ;-).
Preciso fazer um programinha que mostre numa única janela (form), 30 pedaços retangulares de outras 30 janelas abertas. Vai rodar em Window 10.

A ideia é abrir uma aplicação (de terceiro, sem o fonte) 30 vezes, tendo portanto 30 janelas abertas, isso tudo num workspace (no Linux chamamos desktop) do Windows 10, e depois, num outro workspace (mesmo computador, mesmo Windows 10), rodar o meu programa que mostrará num único form, os 30 pedaços das 30 janelas abertas anteriormente, num formato de matriz tipo 5 linhas por 6 colunas. Os 30 pedaços estarão sendo atualizados nas janelas originais e isso deve também ser atualizado no form do meu programa.

Alguém, por favor, pode me dar o caminho das pedras pra eu começar ?
Antecipadamente agradeço.

(postei também em Programming > Widgetset > Win32/64)
« Last Edit: March 23, 2019, 10:41:26 pm by Marco343 »

bylaardt

  • Sr. Member
  • ****
  • Posts: 303
Re: Mostrar pedaços de várias janelas abertas, numa única janela
« Reply #1 on: March 24, 2019, 04:31:16 am »
parece-me confuso.
mas se entendi bem, você quer 30 capturas de telas (ou de janelas) capturadas de aplicações clientes e enviar para uma aplicação servidora, mostrando fragmentos ou imagens reduzidas dessas capturas?

Marco343

  • Newbie
  • Posts: 4
Re: Mostrar pedaços de várias janelas abertas, numa única janela
« Reply #2 on: April 05, 2019, 09:23:27 pm »
A quem interessar possa:
Consegui fazer da seguinte forma:
- Executei cada aplicação (externa) com TProcess.Execute;
- Achei a janela principal da aplicação com GetWindowThreadProcessId;
- Tirei cada screenshot com PrintWindow;
- Transferi a parte que interessa da screenshot para a TImage correspondente no Form com StretchBlt;
- Atualizo periodicamente a TImage com outra screenshot, baseado em TTimer;

Ainda muito trabalho pela frente, mas a prova de conceito já rolou.
« Last Edit: April 11, 2019, 02:18:22 am by Marco343 »