SetPixel(HDC, x, y, COLORREF)

04/12/2008 10:37 CracKPod#1
Hey,
Ich habe folgenden Code:

Code:
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
    HDC desktop = NULL;
    POINT cursor;
    COLORREF color = RGB(255,0,0);
    while(true)
    {
        if(GetAsyncKeyState(VK_F3))
        {
            GetCursorPos(&cursor);
            SetPixel(desktop, cursor.x, cursor.y, color);
        }
    }
}
Er kompiliert aber leider läuft er nicht wie ich es will. Wenn ich F3 drücke soll er mittels SetPixel den aktuellen Pixel unter dem Cursor rot färben. Das hat auch schonmal geklappt, aber ich weiß nicht mehr wie ich es damals gemacht habe. Er macht jetzt momentan einfach gar nichts.

Ich benutze Code::Blocks, unter Dev-C++ sowie MS Visuall C++ 2008 Express auch schon getestet - überall das gleiche.

Ist bestimmt nen ganz doofer Fehler, würde mich freuen wenn ihn jemand findet MfG,
CracKPod
04/12/2008 22:45 rEdoX#2
Hi,

du musst dir auch ein handle auf den device context besorgen:

Quote:
HDC desktop = GetDC(NULL);
04/12/2008 23:53 CracKPod#3
Jop danke habe ich bereits jetzt alles gemacht..
Mfg,
CracKPod
04/13/2008 00:06 DesperadoStrike#4
hey das ding is cool damit kann ich mein crosshair in counterstrike präziser machen^^
04/14/2008 15:20 Term!nX#5
Mal ausm Zusammenhang, wäre es möglich, in einem Spiel bestimmte Pixel zu färben? Sodass man in CS zb einen kleinen Punkt im Crosshair hat. Jemand sagte mir mal, dass es Probleme geben könnte wegen DirectX, irgendsowas in der Art :)
04/15/2008 10:43 neji#6
Bei DirectX wird das aktuelle BIld immer sofort neu geladen, d.h. selbst wenn du mit nem Timer das Pixel an er Stelle immer wieder neu färbst, wird es ganz hässlich flackern.

Besser wäre da ein Hook auf entsprechende DirectX Funktionen, was allerdings ziemlich kompliziert ist. Ich habe das auch schonmal gemacht und hatte einige Zeit damit zu tun.

Außerdem weisss ich nicht, inwiefern Anticheat tools die injection erkennen bei cs.
04/15/2008 13:24 Term!nX#7
Hm wenns grob kompliziert ist, liegt das sowieso außerhalb meiner Kompetenzen :) Angenommen ich hab 80 fps bei 1.6. Würde es flackern, selbst wenn ich alle 5ms den Pixel neu Färbe? Wären dann 200 Erneuerungen pro Sekunde.
04/15/2008 14:25 DesperadoStrike#8
frag einfach mal bei xfire im forum an wie die das machen das des nich flackert ingame vlt sagen sie es dir ja^^
04/15/2008 18:07 Term!nX#9
Die haben einen DirectX hook ganz sicher drauf :)