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?
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.
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
Theoretisch könntest du die PixelSearch Funktion kopieren.
→
Danke, teste die Funktion gerade.
Quote:
Originally Posted by xNopex
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.
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.
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...
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.
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)!
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.
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??