abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 20:11 | Komunita

    V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Nová verze

    Gemini CLI umožňuje používání AI Gemini přímo v terminálu. Vydána byla verze 0.10.0.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | Pozvánky

    Konference OpenAlt 2025 proběhne již příští víkend 1. a 2. listopadu v Brně. Nabídne přibližně 80 přednášek a workshopů rozdělených do 7 tematických tracků. Program se může ještě mírně měnit až do samotné konference, a to s ohledem na opožděné úpravy abstraktů i případné podzimní virózy. Díky partnerům je vstup na konferenci zdarma. Registrace není nutná. Vyplnění formuláře však pomůže s lepším plánováním dalších ročníků konference.

    Ladislav Hagara | Komentářů: 0
    dnes 05:33 | IT novinky

    Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.

    Ladislav Hagara | Komentářů: 2
    dnes 05:22 | Nová verze

    Před konferencí Next.js Conf 2025 bylo oznámeno vydání nové verze 16 open source frameworku Next.js (Wikipedie) pro psaní webových aplikací v Reactu. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 23:33 | Komunita

    Sovereign Tech Fund oznámil finanční podporu následujících open source projektů: Scala, SDCC, Let's Encrypt, Servo, chatmail, Drupal, Fedify, openprinting, PHP, Apache Arrow, OpenSSL, R Project, Open Web Docs, conda, systemd a phpseclib.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Nová verze

    Bylo vydáno OpenBSD 7.8. S předběžnou podporou Raspberry Pi 5. Opět bez písničky.

    Ladislav Hagara | Komentářů: 0
    včera 05:44 | Nová verze Ladislav Hagara | Komentářů: 2
    včera 05:22 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.

    Ladislav Hagara | Komentářů: 5
    21.10. 23:15 | Nová verze

    AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.

    Max | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (49%)
     (20%)
     (20%)
     (23%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 261 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Screenshot neaktivního okna v X

    13.12.2010 01:37 Jaroslav Polakovič
    Screenshot neaktivního okna v X
    Přečteno: 382×
    Zdravím,

    mám tu úkol pro opravdové fajnšmekry. :)

    Řekněme, že mám k dispozici trusted java applet, takže můžu spouštět příkazy operačního systému a přes JNA používat i systémové API, a potřebuju udělat screenshot neaktivního (!) okna, u kterého však lze předpokládat, že žádnou svou částí "neleze pryč z obrazovky", není minimalizované a nachází se na aktivní ploše. Ve Windows toho lze dosáhnout přes Win32 API.

    Ovšem Unix-based systémům příliš nerozumím, takže jsem naivně zkusil spustit xwd s parametrem ID rovnajícím se ID okna, které potřebuji sejmout. Výstupem sice je správný výřez obrazovky o velikosti žádaného okna, ovšem na obrázku jsou zachycena okna, která se nacházejí nad tím, které mě zajímá. To samé při přímém využití fce XGetImage z knihovny XLib. Jakékoli nastavení backing store v tomto případě nic moc neřeší.

    Samozřejmě je možné programově přesunout žádané okno nad ostatní, udělat screenshot, a zase vše vrátit do původního stavu, já bych ovšem rád celou věc vyřešil bez toho - ideálně, aby se vše dělo na pozadí.

    A zde právě uvítám geniální nápad. Vlastně jakýkoli nápad, protože já jsem ztracen.

    Požadavkem je multiplatformnost (ideálně funkční na všech rozšířených distrech i na OSX) a co nejmenší nárok za cílového uživatele. Ideálně jediná věc, která by jej měla obtěžovat, je popup "Ano / Ne" při povolování práv appletu. Při samotném snímání screenshotu by ideálně měl uživatel mít možnost normálně se systémem pracovat, být jen minimálně omezen (např. je v pořádku nutnost zůstat celou dobu na jedné ploše).

    Velice vám děkuji za všechny nápady!

    Řešení dotazu:


    Odpovědi

    14.12.2010 23:28 Mips
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Tohle je opravdu hodně speciální požadavek. Velmi pochybuji, že to lze udělat jen s pomocí Java API. Nejdřív bych se asi zeptal v linuxové či unixové poradně, zda na to vůbec existuje nativní API. V případě, že existuje, nabízí se použití JNI.
    14.12.2010 23:41 Dero
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Děkuji za odpověď.

    Od položení dotazu jsem se trochu posunul. Experimentálně jsem zjistil, že nástroj import z kolekce ImageMagick takový screenshot vytvořit dokáže, takže se blíže podívám na zdrojové kódy a nechám se inspirovat.

    A ano, dalším krokem je použití JNI pro přístup k nativnímu API napříč platformami. Jen pro zajímavost uvádím, že toho lze dosáhnout nejen na Xkách, ale i ve Windows a dokonce zřejmě i v nových verzích OS X (Leopard a Snow Leopard).
    15.12.2010 08:07 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Nedávno jsem řešil podobný problém - potřeboval jsem se podívat na obsah okna na vzdáleném počítači, kde byl spuštěný screensaver (zamknutá session). Obávám se, že to nějak jednoduše nepůjde, protože X server nemá nikde vyrenderované bitmapy částí oken, které nejsou v danou chvíli vidět. Kdyby je totiž měl, nebylo by při odkrytí části okna nutné generovat event pro příslušný proces, aby ji překreslil; zkuste např. odkrýt část okna programu, který je v daném okamžiku zastavený (stav T) - odkrytá část se nevykreslí, dokud proces opět nerozběhnete. Možná by to ale šlo obejít tím, že by se okno dočasně přesunulo nahoru, udělal se screenshot a pak by se zase vrátilo zpátky (pokud to jde).
    15.12.2010 11:30 Dero
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Také děkuji za odpověď.

    Zajímavé však je, že nástroj import z kolekce ImageMagick dokáže udělat screenshot okna, které je částečně nebo úplně zakryté jiným oknem. Pravda, se zamknutou session nebo s oknem na jiné ploše / mimo obrazovku, si také neporadí. To mně ale nevadí. Jak jsem psal výše, musím blíž prozkoumat zdrojáky importu.
    15.12.2010 11:59 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    On ho sice udělá, ale kdykoli jsem to zkoušel, tak zakrytá část okna byla na screenshotu černá (nebo vyplněná jinou barvou pozadí). Což by odpovídalo tomu, co jsem psal výše.
    15.12.2010 12:08 Dero
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Zkoušel jsem před pár dny nejnovější verzi importu na Ubuntu a screenshot okna obsahuje i ty části, které jsou zakryté jinými okny. To třeba XWD nedokáže. A ne, obrazovka neproblikne, nedochází k přesunutí okna na nejvyšší úroveň a rychlému vyfocení.

    Rozjedu ještě nějakou další distribuci ve VM, abych to otestoval, ale rád bych doufal, že to je opravdu novou verzí nástroje, nikoli nastavením distribuce. Ačkoli chápu, že s přihlédnutím k principu fungování X je to podivné.
    15.12.2010 15:14 l4m4
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Jestli se to taky nechová jinak, když ti jede compositing...
    15.12.2010 15:28 l4m4
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Taky jsem si tu diskusi mohl nejdřív dočíst celou...
    Řešení 1× (Dero)
    15.12.2010 12:16 Luboš Luňák | skóre: 19 | blog: Seli
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Je potřeba mít okno přesměrované do pixmapy - buď musí běžet kompozitní manažer, nebo XCompositeRedirectWindow().
    15.12.2010 12:45 Dero
    Rozbalit Rozbalit vše Re: Screenshot neaktivního okna v X
    Tohle je přesně to nasměrování, které jsem potřeboval. Označuji jako řešení a děkuji všem diskutujícím.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.