我正在尝试使用PHP Nightrain来准备桌面应用程序。 我想每隔10秒后拍摄一个打开的窗口。我尝试使用html2canvas,但它正在采取应用程序打开页面的屏幕截图。 如果我打开微软的话并在里面工作,那我想用PHP的屏幕截图。 是否有可能使用PHP? 还有一件事我想使用与OS兼容的PHP进行桌面应用程序。如何使用PHP截取当前窗口的截图?
回答
这不能单独使用php来完成。你需要javascript来截取屏幕截图,将它转换成一个字符串并通过ajax发送给一个php脚本,然后保存内容。您可以使用此库http://html2canvas.hertzen.com/。现在魔术发生在代码的接下来的几行:
// an example html page
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="./javascripts/html2canvas.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#screenshot').on('click', function(e){
e.preventDefault();
html2canvas($('body'), {
onrendered: function(canvas){
var imgString = canvas.toDataURL();
window.open(imgString);
$.ajax({
url: '',
type: 'POST',
data: {
file: imgString
},
success: function(response){
//alert('Everything works fine.');
},
error: function(response){
//alert('Server response error.');
}
});
}
});
});
});
</script>
</head>
<body>
至于IE 7 & 8支持老话 - 谷歌(和其他大型网站)都表示支持高达1版从最新的背。所以,如果当前版本是10,他们只会支持9和10.我相信这是一个很好的做法,我也将它与我的客户一起使用。 IE < 8如果您正在开发先进的网页,可能会遇到很大的麻烦。如果您的客户端仍然坚持其IE 7 & 8的支持,您可能希望签Modernizr和html5shiv这也许能够帮助你带来的IE浏览器对HTML5的支持。
“我试过使用html2canvas,但它正在使用应用程序打开页面的屏幕快照。如果我打开Microsoft word并在其中工作,那么我想使用PHP的屏幕截图。” –
我尝试过使用html2canvas,但它正在运行应用程序的页面。我希望PHP应用程序在每10秒钟后运行一次,并在系统中工作时拍摄屏幕截图。 –
只会在服务器上运行,检查这个怎么样:
<?php
// capture the screen
$img = imagegrabscreen();
imagepng($img, 'screenshot.png');
?>
OR
<?php
// Capture the browser window
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$Browser->Fullscreen = true;
$Browser->Navigate('http://www.stackoverflow.com');
while($Browser->Busy){
com_message_pump(4000);
}
$img = imagegrabwindow($Browserhandle, 0);
$Browser->Quit();
imagepng($img, 'screenshot.png');
?>
搜索是一个快速的答案有用)
它捕获浏览器窗口,但我想捕获系统打开的窗口。这仅适用于Windows。 –
- 1. 如何截取当前的MapView截图?
- 2. 截取活动窗口的截图?
- 3. 如何截取应用程序窗口的一部分截图?
- 4. 在C#中使用Selenium Webdriver的当前窗口屏幕截图#
- 5. 如何截取虚拟机窗口的截图?
- 6. 如何使用grabWindow截取窗口的某个区域的截图?
- 7. 如何确保使用Perl的Imager :: Screenshot截取特定窗口的截图?
- 8. 如何使用PHP截取外部网页的iFrame的截图?
- 9. 如何截取使用php的网页截图?
- 10. 使用WinAPI的窗口截图
- 11. 如何截取android截图
- 12. 窗口的屏幕截图
- 13. 截取特定窗口的屏幕截图 - C++/Qt
- 14. 自动截取程序窗口的屏幕截图
- 15. behat/mink打开窗口并截取它的屏幕截图
- 16. 截图wpf弹出窗口
- 17. cefpython截取当前html的截图(可选:特定元素)
- 18. 截取当前显示屏幕的屏幕截图,而不是当前活动
- 19. 如何截取部分UIView的截图?
- 20. 如何截取HTML表单的截图?
- 21. Android cocos2d如何截取CCscene的截图?
- 22. 如何截取特定LinearLayout的截图?
- 23. 如何截取网站的截图
- 24. 如何截取Flex Spark VideoDisplay的截图?
- 25. 以当前屏幕截图
- 26. 当我截取tableview的截图时,如何包含导航栏
- 27. 如何使用Python截取网站截图/图像?
- 28. 获取窗口屏幕截图窗口API
- 29. 如何使用NSThread截取UIView的截图?
- 30. 如何使用Selenium C#截取下拉菜单的截图?
不,这是不可能的,除非PHP代码在客户机上运行(不太可能,因为PHP通常运行在服务器端)。你正在尝试的是一个严重的隐私问题,这可能是为什么没有这样的API存在。唯一可以做到这一点的方法是通过浏览器扩展和/或NSAPI/PPAPI/ActiveX小程序。 –
使用PHP Nightrain应用程序将像桌面应用程序一样运行,并且它不在浏览器中运行。如果我运行PHP Nightrain的exe文件,它会打开一个窗口。 –
在这种情况下,如果Nightrain没有这样的API,那么可以使用'shell_exec'等来调用外部可执行文件。OS X为此提供了一个内置命令。关于其他操作系统的IDK。 –