我正在嘗試使用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. 截取活動窗口的截圖?
- 2. 如何截取應用程序窗口的一部分截圖?
- 3. 如何使用PHP截取外部網頁的iFrame的截圖?
- 4. 如何截取使用php的網頁截圖?
- 5. 使用WinAPI的窗口截圖
- 6. 如何截取android截圖
- 7. 窗口的屏幕截圖
- 8. 截取特定窗口的屏幕截圖 - C++/Qt
- 9. 自動截取程序窗口的屏幕截圖
- 10. behat/mink打開窗口並截取它的屏幕截圖
- 11. 如何截取Flex Spark VideoDisplay的截圖?
- 12. Android cocos2d如何截取CCscene的截圖?
- 13. 如何截取HTML表單的截圖?
- 14. 如何截取特定LinearLayout的截圖?
- 15. 如何截取網站的截圖
- 16. 以當前屏幕截圖
- 17. 如何使用Python截取網站截圖/圖像?
- 18. 獲取窗口屏幕截圖窗口API
- 19. 如何在C#中使用滾動窗口截圖#
- 20. 如何在C#中使用全尺寸窗口截圖#
- 21. iOS截取tableview的截圖
- 22. 截取iFrame的截圖
- 23. 截取另一個窗口的輸出
- 24. 如何使用Perl截取網頁截圖?
- 25. Qt:截取EGLFS窗口的截圖 - 像素完美相同的結果?
- 26. 生成WPF窗口的截圖
- 27. 獲得的截圖與hidding父窗口
- 28. 以窗口的截圖在後臺
- 29. 僅QtDesigner窗口的屏幕截圖
- 30. 窗口的完整屏幕截圖
不,這是不可能的,除非PHP代碼在客戶機上運行(不太可能,因爲PHP通常運行在服務器端)。你正在嘗試的是一個嚴重的隱私問題,這可能是爲什麼沒有這樣的API存在。唯一可以做到這一點的方法是通過瀏覽器擴展和/或NSAPI/PPAPI/ActiveX小程序。 –
使用PHP Nightrain應用程序將像桌面應用程序一樣運行,並且它不在瀏覽器中運行。如果我運行PHP Nightrain的exe文件,它會打開一個窗口。 –
在這種情況下,如果Nightrain沒有這樣的API,那麼可以使用'shell_exec'等來調用外部可執行文件。OS X爲此提供了一個內置命令。關於其他操作系統的IDK。 –