CGI Script gibt falsche werte zurück

Alles, was den Apache betrifft, kann hier besprochen werden.

CGI Script gibt falsche werte zurück

Postby mtrxtddy » 18. August 2009 17:41

Hallo,

ich wollte mir über ein CGI Script einen Screenshot vom Desktop erstellen.
Wenn ich das Programm über die Konsole ausführe, klappt alles wunderbar.
Führe ich es jedoch über den Browser (egal welcher) auf meinem Apache-Server
aus gibt es eine falsche Auflösung zurück. Woran könnte das liegen?


Code:

bmi.bmiHeader.biWidth = GetDeviceCaps(hdc, HORZRES);
bmi.bmiHeader.biHeight = GetDeviceCaps(hdc, VERTRES);
bmi.bmiHeader.biBitCount = GetDeviceCaps(hdc, BITSPIXEL);
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biSizeImage = bmi.bmiHeader.biBitCount * bmi.bmiHeader.biHeight * bmi.bmiHeader.biWidth / 8;

printf("<BR>Resolution should be: %dx%dx%d", bmi.bmiHeader.biWidth, bmi.bmiHeader.biHeight, GetDeviceCaps(hdc, BITSPIXEL));

byte *pbBits = new byte[bmi.bmiHeader.biSizeImage];

int test = BitBlt(memDC, 0, 0, bmi.bmiHeader.biWidth, bmi.bmiHeader.biHeight, hdc, 0, 0, SRCCOPY);

Richtige Auflösung: 1440x900
CGI-Script im Brwoser: 1024x768

Apache Version: 2.2
OS: Windows Vista Home Premium
Programmiersprache: C/C++
mtrxtddy
 
Posts: 3
Joined: 18. August 2009 17:34

Re: CGI Script gibt falsche werte zurück

Postby Wiedmann » 18. August 2009 20:20

Wie startest du den Apachen?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: CGI Script gibt falsche werte zurück

Postby mtrxtddy » 19. August 2009 08:55

Ich startet ihn als Dienst, dem erlaubt ist, mit dem Desktop Daten auszutauschen.
mtrxtddy
 
Posts: 3
Joined: 18. August 2009 17:34

Re: CGI Script gibt falsche werte zurück

Postby Wiedmann » 19. August 2009 09:47

Du müsstest in deinem Fall wohl Apachen als "normale Anwendung" (also nicht als Dienst) starten.
Die WinSta eines interactiven Service hat ab Vista keinen direkten Zugriff mehr auf die WinSta des angemeldeten Users.

Die Möglichkeit über CreateProcessAsUser dürfte wohl bei einem CGI ausscheiden, da man sich da ja erst ein Token über LogonUser holen muss. Ansonsten könnnte man wohl noch eine Application als User starten, welche dann auf Anforderung den Screenshot macht, und die mit deinem CGI (interaktiver Service) über IPC oder NamedPipes kommuniziert.

Letztendlich solltest du dich damit an irgendein Forum wenden, Wo man man sich mit der Programmierung unter Windows (in C) beschäftigt.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: CGI Script gibt falsche werte zurück

Postby mtrxtddy » 19. August 2009 11:55

Danke, dass war genau der Fehler.

Du bist ab sofort mein persönlicher Held :-)
mtrxtddy
 
Posts: 3
Joined: 18. August 2009 17:34


Return to Apache

Who is online

Users browsing this forum: No registered users and 6 guests