Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 21:40

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++] Probleme mit PixelSearch

Discussion on [C++] Probleme mit PixelSearch within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
» Fabi202cool's Avatar
 
elite*gold: 20
Join Date: Sep 2009
Posts: 2,095
Received Thanks: 4,917
[C++] Probleme mit PixelSearch

moin,
ich versuche nun schon seit einigen Stunden ein PixelSearch von meiner DLL zu starten. Aber irgendwie will nichts in der DLL klappen, wie z.B. die PixelSearch Funktion aus der AutoIt Lib:

Quote:
#include <Windows.h>
#include "AutoIt3.h"

BOOL WINAPI DllMain(HINSTANCE hDllInstance, DWORD Reason, LPVOID Reserved)
{
switch(Reason)
{
case DLL_PROCESS_ATTACH:
POINT T;
AU3_Sleep(1000);
AU3_PixelSearch(0,0,10,10,0xFF0000,10,10,&T);
if (AU3_error() == 0)
{
AU3_MouseMove(T.x,T.y,NULL);
}
break;
}
return TRUE;
}
Bei einer normalen Anwendung geht alles, bei der DLl jedoch nichts. Hat von euch vll jemand eine vernünftige PixelSearch Funktion die auch bei DLL's geht, oder kann mir helfen?
» Fabi202cool is offline  
Old 03/20/2012, 11:52   #2
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
Hör bitte auf eine so schöne Sprache mit AutoIt und PixelSearch zu vergewaltigen, danke.
MoepMeep is offline  
Thanks
1 User
Old 03/20/2012, 12:27   #3
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Theoretisch könntest du die PixelSearch Funktion kopieren.


KDeluxe is offline  
Thanks
1 User
Old 03/20/2012, 13:44   #4
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
Bei einer normalen Anwendung geht alles, bei der DLl jedoch nichts.
Deine Fehlerbeschreibung hilft so ziemlich gar nicht. Was genau geht nicht? Was passiert genau? Schonmal geschaut, ob der Code überhaupt ausgeführt wird? Bzw. mal rausgekriegt, wo genau nicht das erwartete Verhalten eintrifft? Sollen wir jetzt ins Blaue raten, was falsch läuft? Solche Themen kotzen mich einfach an. Fetzen Code hinwerfen rumheulen, dass es nicht geht und die Anderen machen lassen.. Blabla geh weiter in AutoIt scripten.
xNopex is offline  
Thanks
1 User
Old 03/20/2012, 14:43   #5
 
» Fabi202cool's Avatar
 
elite*gold: 20
Join Date: Sep 2009
Posts: 2,095
Received Thanks: 4,917
Quote:
Originally Posted by MoepMeep View Post
Hör bitte auf eine so schöne Sprache mit AutoIt und PixelSearch zu vergewaltigen, danke.
AutoIt ist in C++ geschrieben und bei der AU3_ wird direkt die Funktion aus der DLL geladen.

Quote:
Originally Posted by KDeluxe View Post
Theoretisch könntest du die PixelSearch Funktion kopieren.


Danke, teste die Funktion gerade.

Quote:
Originally Posted by xNopex View Post
Deine Fehlerbeschreibung hilft so ziemlich gar nicht. Was genau geht nicht? Was passiert genau? Schonmal geschaut, ob der Code überhaupt ausgeführt wird? Bzw. mal rausgekriegt, wo genau nicht das erwartete Verhalten eintrifft? Sollen wir jetzt ins Blaue raten, was falsch läuft? Solche Themen kotzen mich einfach an. Fetzen Code hinwerfen rumheulen, dass es nicht geht und die Anderen machen lassen.. Blabla geh weiter in AutoIt scripten.
Wenn ich schreibe das nichts passiert wird die Funktion nicht ausgeführt, außerdem ahbe ich noch vergessen hinzuschreiben das die Gesammte DLL bei diesem Punkt stoppt.
» Fabi202cool is offline  
Old 03/20/2012, 14:56   #6
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Versuch doch die Funktionen via LoadLibary zu laden.
jacky919 is offline  
Old 03/20/2012, 16:51   #7
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
Wenn ich schreibe das nichts passiert wird die Funktion nicht ausgeführt, außerdem ahbe ich noch vergessen hinzuschreiben das die Gesammte DLL bei diesem Punkt stoppt.
Es ist sehr unklug (zeit-)aufwendige Funktionen in die DLL-Main zu platzieren. Allgemein sollte es vermieden werden in der DllMain Code ausführen zu lassen. Deshalb: Starte in der DllMain einen Thread und lass den Thread die PixelSearch-Funktion aufrufen.
xNopex is offline  
Old 03/20/2012, 18:07   #8
 
» Fabi202cool's Avatar
 
elite*gold: 20
Join Date: Sep 2009
Posts: 2,095
Received Thanks: 4,917
Quote:
Originally Posted by xNopex View Post
Es ist sehr unklug (zeit-)aufwendige Funktionen in die DLL-Main zu platzieren. Allgemein sollte es vermieden werden in der DllMain Code ausführen zu lassen. Deshalb: Starte in der DllMain einen Thread und lass den Thread die PixelSearch-Funktion aufrufen.
Jo, habe es so hier in epvp gepostet damit es übersichtlicher ist.

Habe es jetzt mit der Original Autoit Funktion getestet, jedoch mit dem selben Ergebniss...

» Fabi202cool is offline  
Old 03/20/2012, 19:18   #9
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Du hast zwei Möglichkeiten:
Entweder du gehst mit einem Debugger drüber und schaust, wo und warum etwas schief läuft. Oder du setzt an interessanten Punkten ein paar Ausgaben, z.b. via OutputDebugString, und schaust so, wo genau der Fehler liegt. Und dann kann man weiter sehen.
xNopex is offline  
Old 03/20/2012, 19:44   #10
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Quote:
Originally Posted by xNopex View Post
Es ist sehr unklug (zeit-)aufwendige Funktionen in die DLL-Main zu platzieren. Allgemein sollte es vermieden werden in der DllMain Code ausführen zu lassen. Deshalb: Starte in der DllMain einen Thread und lass den Thread die PixelSearch-Funktion aufrufen.
Selbst das kann zum Deadlock führen, wenn man nicht aufpasst. Allgemein sollte man keinen fremden Code ausführen, der nicht aus der Kernel32.dll stammte.
Genaueres dazu:


Schlauer ist es eine Funktion aus der Dll zu exportieren und diese dann in deinem Programm zu importieren. Hier kann nichts schief gehen (eigene Dummheit mal ausgeschlossen)!

Beispiel:
Code:
//Meine Dll

bool __declspec(dllexport) PixelSearch()
{
       //...
}
Code:
//Meine Exe

#pragma comment(lib, "Meinedll.lib")

bool __declspec(dllimport) PixelSearch();

int main()
{
     PixelSearch();
}
Besser geht es nicht. Das Ganze ist dann auch nochmal schneller als die Dll über LoadLibrary zu laden und ihre Funktionen zur Laufzeit zu importieren. Hier übernehmen der Compiler und am Ende der PE Loader die Schmutzarbeit.




@Topic:
Du solltest dir die Funktionen BitBlt und CreateDIBSection anschauen, dann kannst du das auch ohne AutoIt machen.


Nightblizard is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Pixelsearch Bot
07/08/2011 - AutoIt - 6 Replies
Hallo, ich wollte fragen ob es möglich ist z.B. für Crossfire einen Pixelsearch Bot zu machen und Wie macht man mit Autoit so einen Youtube Account Creator und wie umgeht man die Captchaabfrage?
Pixelsearch
06/26/2010 - General Coding - 5 Replies
Hallo, ich habe ein Problem, ich habe versucht ein kleines Programm mit Pixelsearch zu erstellen, da ich daran kläglich gescheitert bin wollt ich mal fragen ob das jemand von euch für mich übernehmen kann? Ich möchte das das Program gedrückt hält und dann einen Pixel in der Farbe sucht (sind mehrere vorhanden und es ist egal welchen er anklickt), ihn anklickt und dann ein paar sekunden wartet dann Leertaste für kurze Zeit gedrückt hält. Das soll sich dann nach einiger Zeit wiederholen. Die...
pixelsearch
12/27/2009 - AutoIt - 11 Replies
hi hab mal ne frage ich hab jetzt mit pixelsearch die coordinaten ich will aber jetzt das der 50 pixel darunter von den coordinaten hinklickt wie geht das?
pixelSearch
07/05/2009 - AutoIt - 11 Replies
hi leute, brauch mal eure hilfe bei autoit ich möchte einen bot machen der einen pixel sucht und wenn er ihn findet soll er mit der maus zu ihm gehen und rechtsklick machen ( bin anfänger bei autoit) thx im vorraus
PixelSearch
07/27/2008 - Nostale - 5 Replies
hi leute kann mir pls jemand erklären wie man pixelsearch benuzt??



All times are GMT +2. The time now is 21:40.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.