PHP5.2.2 and later versions of the GD Library implement two screenshot functions: imagegrabscreen and imagegrabwindow, which are used to intercept the entire screen and capture the screen of a window (with ALT + PrintScreen) respectively.
1. capture the whole screen Screenshot
The code is as follows:
$ Im = imagegrabscreen ();
Imagepng ($ im, “myscreenshot.png ");
?>
2. Capture a window (IE for example)
The code is as follows:
$ Browser = new COM ("InternetExplorer. Application ");
$ Handle = $ browser-> HWND;
$ Browser-> Visible = true;
$ Im = imagegrabwindow ($ handle );
$ Browser-> Quit ();
Imagepng ($ im, “iesnap.png ");
$ Im = imagegrabscreen ();
?>
3. Capture the IE content Capture a window(IE for example) but with its content!
The code is as follows:
$ Browser = new COM ("InternetExplorer. Application ");
$ Handle = $ browser-> HWND;
$ Browser-> Visible = true;
$ Browser-> Navigate (http://www.jb51.net ");
/* Still working? */
While ($ browser-> Busy ){
Com_message_pump (4000 );
}
$ Im = imagegrabwindow ($ handle, 0 );
$ Browser-> Quit ();
Imagepng ($ im, “iesnap.png ");
?>
4. intercept the full screen mode of IEIE in fullscreen mode
The code is as follows:
$ Browser = new COM ("InternetExplorer. Application ");
$ Handle = $ browser-> HWND;
$ Browser-> Visible = true;
$ Browser-> FullScreen = true;
$ Browser-> Navigate (http://www.jb51.net ");
/* Is it completely loaded? (Be aware of frames !) */
While ($ browser-> Busy ){
Com_message_pump (4000 );
}
$ Im = imagegrabwindow ($ handle, 0 );
$ Browser-> Quit ();
Imagepng ($ im, “iesnap.png ");
?>
The above explains how to use php com to call the IE window to open a webpage for screenshots, but many of my friends only get a pure black image. why?
There may be two situations: the first case is that the COM component is only applicable to WINDOWS servers, and the servers of other systems are not supported because it does not have Internet Explorer, the second case is that services are not allowed to interact with the desktop! In the second case, the most common method is to open a computer (my computer) -> right-click-> Manage-> services and applications-> services-> Apache (I use the apache server myself) -> right-click and choose Properties> logon identity!