uporałem się (mniej więcej z wykonywaniem screenshoota strony. korzystam, jak w manualu, z interfejsu COM. nie jest to w pełni satysfakconujące rozwiązanie (i serwer i klient musi być na Windzie, a screen generuje się tylko na Internet Explorerze), ale chyba doszedłem do ściany, inaczej się chyba nie da. kod wygląda następująco
<?php $browser = new COM("InternetExplorer.Application"); $handle = $browser->HWND; $browser->Visible = true; $browser->Fullscreen = true; $browser->Navigate("http://www.google.com/"); /* Still working? */ while ($browser->Busy) { com_message_pump(4000); } $im = imagegrabwindow($handle, 0); $browser->Quit(); imagejpeg($im, "image.jpg"); imagedestroy($im); ?>
Teraz przy odpaleniu wypluwa mi IE w fullscreenie, a po załadowaniu automatycznie zamyka. chodzi mi o to czy istnieje możliwość, aby to działo się niewidzialnie, żeby system otwierał IE w celu wygenerowania screena, ale jakby w tle, aby użytkownik (korzystający np. z ff) nie musiał tego widzieć. Wybaczcie, ale inaczej tego nie potrafię zwerbalizować, chyba wiecie o co mi chodzi.
dodam, że jeśli zakomentuję linijkę z Visible, otrzymuję czarną grafikę.
szukałem jakiejś dokumentacji do HWND ale nie znalazłem nic sensownego.