Frage

Ich versuche imagegrabscreen (eine GD-Funktion) zu bekommen mit meinem Apache / Vista PC zu arbeiten.

Ich verwende den folgenden Code ein:

<?php
$im = imagegrabscreen();

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Im Moment habe ich ein festes schwarzes Bild bekommen, die Größe meines zweiten Monitor (1024 * 768). Ich verwende Apache 2.2 als Dienst runing, Vista SP1 mit UAC ausgeschaltet, PHP 5.2.8 und GD (Informationen unten). Ich habe die Notiz auf der imagegrabscreen Seite über so dass Apache Zugriff auf den Desktop gefolgt. Ich habe neu gestartet auch den Service und den Apache-Server. Ich erhalte die gleichen Ergebnisse mit imagegrabwindow.

Ist das ein Bug (tun andere Leute haben Probleme diese Methode ausgeführt wird?), Oder gibt 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

War es hilfreich?

Lösung

ich an der Quelle sah imagegrabscreen ();

an diesem Punkt, ich glaube, es fehlschlägt, weil wir beide Multi-Monitor-Setups haben.

Der aktuelle Code ruft GetDC (0), die nach http://msdn.microsoft.com/en-us /library/dd144871(VS.85).aspx sollte den Gerätekontext für „den gesamten Bildschirm“ zurück, aber „Um die DC für einen bestimmten Anzeigemonitor zu erhalten, Verwenden Sie den EnumDisplayMonitors und CreateDC Funktionen "

Ich werde ein bisschen mehr Erprobung, dies zu tun und sehen, ob ich mit Multi-Monitor-freundlichen Code aufwarten kann.

Andere Tipps

Ich sehe Hughs derzeit geprüft Antwort, und bin neugierig, wenn jemand dies in den letzten 3 Jahren gelöst hat? Ich habe den „erlaubt Dienst mit dem Desktop interagieren“, gefolgt Schritten, und auf einem Laptop laufen lasse, die ich gelegentlich auch einen zweiten Monitor anschließen. Obwohl, wenn ich das Skript bin mit, dass ich diese Arbeit mit machen versuchen, werde ich nur auf meinem Laptops Hauptmonitor. Ich bin mit Windows 7 64bit, mit WAMP Server 2.2. Die php_gd2 Erweiterung wird geprüft, und es funktioniert mit dem Speichern der Datei. Aber egal, was ich versuche, und alle Ergebnisse, kann ich nicht dieses Ding richtig Screenshot, es gibt immer einen schwarzen Bildschirm. Ich habe auch versucht, den grundlegenden Code in diesem Beispiel vorgesehen (obwohl mein so ziemlich das gleiche, was ohnehin war).

Wenn jemand kann mir eine Lösung bieten, wenn sie eine gefunden, bitte lassen Sie mich wissen, würde ich dankbar. Ich habe versucht, auch mit XP und Vista WAMP im Kompatibilitätsmodus ausgeführt wird: / (ich irgendwo gelesen, dass die imagegrabscreen Funktion nur mit XP / Vista funktioniert Letztlich Ich versuche, ein kleines, leichtes Skript zu erstellen, das ich im Hintergrund ausgeführt haben kann zu überwachen. Fortschritte an einem Projekt, an dem ich arbeite, die einfach einen Screenshot schnappt Größen es ein wenig nach unten, und am Ende meiner Tage Arbeit, würde es die Dateien zippen und sie dem Benutzer in E-Mail übergeben. Alles andere funktioniert mit Leichtigkeit , aber es ist mein erstes Mal der imagegrabscreen-Funktion, und so cool, wie es klingt, ist es nun an meine Nerven bekommen hat, denn ich kann es nicht bekommen, nur seine Arbeit zu tun ...: (

Ich habe diesen Fehler dupliziert - WinXP SP3, Apache 2.2.11 als Dienst ausgeführt, PHP 5.2.8, GD 2.0.34 gebündelt

.

I erlaubt die Interaktion mit dem Desktop und neu gestartet den Dienst. Auf einem Dual-Screen-Setup (Primary: 1440x900, Sekundär: 1920x1200) bekomme ich ein schwarzes Rechteck in der Größe des primären Bildschirms. Ich habe die Fehlerberichterstattung wandte sich nach rechts oben (E_ALL | E_STRICT) und XDebug meldet keine Fehler

.

Hat jemand Pflege einen Schuss auf das nehmen? Die wichtigsten Variablen scheinen OS (Win2000 / WinXP / Win2003 / Vista) und PHP-Version (5.2.2 / 0,3 / 0,4 / 0,5 / 0,6 / 0,8) zu sein.

Ich werde einen Blick auf die Quelle zu ergreifen, um imagegrabscreen ().

Ich denke, imagegrabscreen() funktioniert nur unter Windows XP nicht Vista.
Sie sollten diese Link überprüfen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top