java - Få billede fra et program

Indlæg af Hanne Mølgaard Plasc

Problem



Beklager, dette spørgsmål er ret bredt, men jeg har ikke en anelse om, hvordan man skal gøre det.


I Java, hvordan kan jeg få det, som et Windows-program vises i form af et billede?


Jeg kan lide indholdet af billedet for at inkludere bare en ramme fra et programvindue, ikke en hel skærm.


Jeg tror, ​​at at få applikationsvinduet fra vinduets titel kan være en start, men har Java endda adgang til GUI'erne i andre processer?

Bedste reference


Det bedste du kan gøre i ren Java er at bruge klassen Robot til at indfange et bestemt rektangel. Følgende Q &A viser hvordan ... for det tilfælde, hvor rektanglet er hele skærmen.



  • Screenshot capture i Window 8 OS



(Dette skal fungere for alle Java SE-platforme, der ikke er hovedløse.)


Det er den nemme bit.Den hårde bit er at finde ud af, hvad rektangel til screenshot. Java-bibliotekerne giver ingen API'er til at finde oplysninger om skærmens placeringer af 'andre' applikationer. For at finde den slags information, skal dit Java-program interagere med det oprindelige operativsystem via et indbygget bibliotek eller en ekstern hjælpekommando. Dette vil uundgåeligt være platformspecifikke ... hvilket betyder at det vil bryde for Mac og Linux, og muligvis også for andre versioner af Windows.


Jeg ville ikke forsøge at gøre dette i Java overhovedet. I stedet ville jeg se efter et OS-specifikt skærmbillede program, der kan køres som en ekstern applikation, f.eks. Ved hjælp af Process.exec. Alternativt kan jeg finde ud af, hvordan man skriver sådan en app, i (sige) C #.






  Jeg tror, ​​at at få applikationsvinduet fra vinduets titel kan være en start, men har Java endda adgang til GUI'erne i andre processer?



Nej og nej.