grafische Oberfläche analysieren?



  • hallo,

    ich wollte mich mal darüber erkundigen ob es irgendwie möglich ist mit c# bilder zu analysieren
    z.b. ein screenshot automatisch vom desktop zu machen und dies dann auf farben, formen o.ä. zu untersuchen...ob ein bestimmtes fenster geöffnet ist und was dort angezeigt wird
    wäre nett wenn ihr mir ein paar lösungsansätze geben könntet...danke schon mal im vorraus

    mfG m.OLITOr 🙂



  • Ja kannste benutz das hier kannste in vc++ 2008 reinpacken und kompilieren
    musst nur die Position der Bilder ändern (das stammt aus einem anderen Forum hier is der Link "http://forum.fachinformatiker.de/c-compiler-ides-apis/36973-2-bildervergleichen.html")

    // GDI+
    #include "stdafx.h"
    #include <windows.h>
    #include <gdiplus.h>

    using namespace Gdiplus;
    #pragma comment( lib, "gdiplus.lib" )

    // für cout
    #include <iostream>
    #include <string>
    using namespace std;

    int main()
    {
    // GDI+ initialisieren
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

    // Scopeklammern, damit alle Objekte vor GdiPlusShutdown zerstört sind
    {

    Bitmap bm1( L"C:\\de.png");
    Bitmap bm2( L"C:\\jap.png");

    if( bm1.GetWidth() != bm2.GetWidth() || bm1.GetHeight() != bm2.GetHeight() ) {
    // Unterschiedliche Abmessungen
    cout << "Die Bilder haben unterschiedliche Abmessungen." << endl;
    cout << "Es wurde kein Vergleich durchgeführt." << endl;
    }
    else {
    int nDifferentPixels = 0;
    Color color1, color2;
    for( int x=0; x<bm1.GetWidth(); ++x ) {
    for( int y=0; y<bm1.GetHeight(); ++y ) {
    if( Ok == bm1.GetPixel( x,y, &color1 ) && Ok == bm2.GetPixel( x,y, &color2 ) ) {
    if( color1.GetValue() != color2.GetValue() ) {
    ++nDifferentPixels;
    }
    }
    }
    }
    cout << "Unterschiedliche Pixel: " << nDifferentPixels << endl;
    }
    }

    GdiplusShutdown(gdiplusToken);
    return 0;
    }


Anmelden zum Antworten