Immer imagegrabscreen zu arbeiten
Ich versuche imagegrabscreen
(GD-Funktion) arbeiten mit meinem Apache/Vista-PC.
Ich bin mit dem folgenden code:
<?php
$im = imagegrabscreen();
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Im moment bekomme ich ein solides Schwarzes Bild, die Größe von meinem sekundären monitor (1024*768). Ich bin mit Apache 2.2, running as a service, Vista SP1 mit UAC off, PHP 5.2.8 und GD (Informationen unten). Ich habe folgte der Hinweis auf die imagegrabscreen
Seite etwa, dass Apache Zugriff auf den desktop. Ich habe auch neu gestartet, die Dienste und den apache-server. Ich bekomme die gleichen Ergebnisse mit imagegrabwindow
.
Ist das ein bug (andere Menschen haben Schwierigkeiten beim ausführen dieser Methode?) oder ist es etwas, was ich falsch mache?
Array
(
[GD Version] => bundled (2.0.34 compatible)
[FreeType Support] => 1
[FreeType Linkage] => with freetype
[T1Lib Support] => 1
[GIF Read Support] => 1
[GIF Create Support] => 1
[JPG Support] => 1
[PNG Support] => 1
[WBMP Support] => 1
[XPM Support] =>
[XBM Support] => 1
[JIS-mapped Japanese Font Support] =>
)
Apache-Dienst Anmelden details:
http://www.kalleload.net/uploads/maogfnfnczfh.png http://www.kalleload.net/uploads/maogfnfnczfh.png
Ich habe, dass off. Apache läuft ebenfalls wie der lokale Benutzer - vermutlich mich - und das ist ein Administrator-Benutzer.
Ist Apache als Dienst ausgeführt wird, und mit Zugriff auf die Anzeige (war ein Kontrollkästchen in w2k)?
Apache läuft als service. Ich finde keine "anzeigen" Kontrollkästchen wenn. Ich werde einen screenshot von der Registerkarte "Anmelden" für den service.
Es war die "allow service to interact with desktop" aktivieren, dass ich meinte, das ich sehe, ist geprüft.
InformationsquelleAutor Ross | 2009-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sah ich an der Quelle imagegrabscreen();
zu diesem Zeitpunkt, ich glaube es nicht, weil wir haben beide multi-monitor-set-ups.
Den aktuellen code ruft GetDC(0), die nach
http://msdn.microsoft.com/en-us/library/dd144871(VS.85).aspx
sollte das Gerät wieder in den Kontext "der gesamte Bildschirm", aber
"Um die DC für einen bestimmten monitor,
verwenden Sie die EnumDisplayMonitors und CreateDC-Funktion"
Ich werde tun, ein bisschen mehr testen und sehen, ob ich kommen kann mit multi-monitor-freundlich-code.
InformationsquelleAutor Hugh Bothwell
Sehe ich Hugh ' s derzeit geprüft Antwort, und bin gespannt, ob jemand gelöst hat dies in den letzten 3 Jahren? Ich habe den "Datenaustausch mit dem desktop interagieren" Schritte, und bin auf einem laptop, den ich gelegentlich schließen Sie einen zweiten monitor zu. Obwohl, wenn ich mit dem Skript, das ich versucht bin, diese Arbeit zu machen, werde ich nur auf meinen laptops main monitor. Ich verwende Windows 7 64bit, mit dem WAMP Server 2.2. Die php_gd2 Erweiterung aktiviert ist, und es funktioniert mit der Speicherung der Datei. Aber egal was ich versuche, und alle Erkenntnisse, die ich nicht bekommen kann, diese Sache zum screenshot, richtig, es gibt immer einen schwarzen Bildschirm. Ich habe auch versucht, die basic-code in diesem Beispiel (obwohl mir war ziemlich viel die gleiche Sache sowieso).
Wenn jemand kann mir eine Lösung wenn Sie eines gefunden haben, bitte lassen Sie mich wissen, wäre ich dankbar. Ich habe auch versucht, läuft WAMP im Kompatibilitätsmodus mit XP und Vista :/(ich habe irgendwo gelesen, dass die Funktion imagegrabscreen funktioniert nur mit XP/Vista. Letztlich bin ich versucht, erstellen Sie eine kleine, leichte Skript, dass ich im hintergrund laufen, um die Fortschritte zu überwachen auf ein Projekt an dem ich arbeite, die einfach reißt ein screenshot, Größen es ein wenig nach unten, und am Ende meiner Tage arbeiten, wäre es zip, um die Dateien und übergeben Sie an den Benutzer per E-Mail. Alles andere funktioniert mit Leichtigkeit, aber es ist mein erstes mal mit der Funktion imagegrabscreen, und so cool wie es klingt, es hat jetzt bekommen, um meine Nerven verursachen kann ich nicht bekommen es zu tun nur Ihren job... 🙁
InformationsquelleAutor NinjaKC
Habe ich dupliziert diese Fehlermeldung - WinXP, SP3, Apache 2.2.11 als Dienst ausführen, PHP 5.2.8, GD 2.0.34 gebündelt.
Darf ich die Interaktion mit dem desktop und neu gestartet und der Dienst. Auf einem dual-screen-setup (Primär: 1440x900, Sekundär: 1920 x 1200) bekomme ich ein Schwarzes Rechteck in der Größe des primären Bildschirms. Ich habe die Fehlerberichterstattung aktiviert ist rechts oben (E_ALL | E_STRICT) und XDebug meldet keine Fehler.
Hat jemand vorsichtig einen Schuss auf diese? Die wichtigsten Variablen zu sein scheinen, OS (Win2000/WinXP/Win2003/Vista) und version von PHP (5.2.2/.3/.4/.5/.6/.8).
Werde ich einen Blick auf die Quelle zu imagegrabscreen().
InformationsquelleAutor Hugh Bothwell
Ich denke
imagegrabscreen()
funktioniert nur in Windows XP nicht Vista.Sie sollten dies überprüfen link
InformationsquelleAutor Arslan