Quote:
Originally Posted by yehowah
Also ich wäre da vorsichtig. BTW schon was von Code Konventionen gehört, sieht grässlich aus der code  Nichts destotrotz schön das du dir die Arbeit gemacht hast. Werde dein Script zwar nicht usen, aber es gibt bestimmt noch andere Mittel und wege die Coords Abzufragen  als mit nem hook bzw autoit  könnte dir C ans herzlegen erst funktional danach c++ mit objekt orientierung
greetz
|
Bevor ich kommentiere, lege ich dir die Definition von "Süffisanz" ans Herz, lese es gut und überdenke deinen Post. Nicht einmal inhaltlich, nur von der Art und Weiße wie du schreibst oder meinst deine Meinung kundtun zu müssen.
Weniger davon und mehr sinnvoller Inhalt, macht dein ganzes Feedback gleich brauchbarer.
AutoIT ist eine Script Sprache und im Beispiel hier wird einfach eine Funktion per WASD Steuerung gebaut.
Was du bei so einem winzigen ShowCase mit Code_Conventions willst ist mir total schleierhaft. Code-Conventions sind wie immer total subjektiv von Team zu Team, von Firma zu Firma, komplett unterschiedlich gestrickt.
Im Prinzip ist "alles" was du an Code schreibst eine Code-Convention, man einigt sich schlicht darauf wie Code auszusehen hat.
AutoIT an sich ist dazu gedacht (wie jede Script Sprache) möglich ohne Aufwand Funktionalität zu bauen.
Will man "sinnvoll" mit einer OO-Sprache arbeiten setze "ich" ganz andere Maßstäbe und die werden in C/C++ ohnehin in aller Regel mit Füßen getreten, weil die Programmierer einfach nicht anfangen "ordentlich" zu coden // so schleppt man uralte Legacy Codestücke mit herum, hat tiefgreifende hacks, die schlecht Dokumentiert sind und eine "pseudo" Objekt Orientierung die mit Statics nur um sich schmeißt und hochgradig unübersichtlich wird, gerade wenn das Projekt wächst.
Für solche Tools, wie eben dieses, ist C/C++ komplett überdimensioniert, den den Grad an hardwarenähe benötigt man keines Wegs und Objekt Orientierung in einem solchen Makro sind ebenso komplett fehl am Platz.
Das es machbar ist bestreitet keiner, "sinnvoll" ist es aber nicht.
Die Grundlage eines Showcase ist ganz einfach "so gehts" , lange nicht das man es anders, besser oder sonstwie "schöner" (subjektiv) machen könnte, den es ist gezeigt es geht, das ist das Ziel und Ziel erreicht.
Jeder Eumel der mal einen Informatik Grundkurs belegt hat kann das Script lesen und wird es verstehen, das macht es lesbar und ausreichend selbst beschreibend, den Bedürfnissen eines Showcases kommt alle mal nach.
Sehen wir mal von der hoch "arroganten" und "flamer" Haltung ab die du an den Tag legst // sei es dir bewußt oder nicht (den solltest du über 18 Jahre sein, solltest du dir wirklich überlegen in welchen Ton du deine Texte verfasst, das kommt dir im Berufsleben nur zum Nachteil).
Natürlich "könntest" du auch einfach selbst einen gewinnbringenden Teil leisten, tust das aber nicht.
Wenn du das Script 100% "sicher" bauen willst, mach einen Showcase, zeige auf wie es zu gehen hat, schreibe von mir aus sogar einen White-Paper der genau Beleuchtet was dein Anliegen ist, auf einem Level der gewinnbringend zu lesen ist und nicht nur Überquillt vor Süffisanz.
#########################
Quote:
Naja beschäftige mich schon einiger Zeit mit hooks und co. Programmiere zZ in Java/C/C++/c#/vb.net und muss sagen dieses Code stück in deinem AutoIt script wird mit 100 % warscheinlichkeit von warden detected da es sich soweit ich informiert bin über die internen Abläufe von AutoIt um einen Hook handelt:
Global $winTitle = "Diablo III"
Global $hWnd = WinGetHandle($winTitle)
Genau das gleiche gilt für die Size Abfrage des Windows. Dürfte beides erkannt werden.
|
Ich glaube du hast keine Ahnung was ein "Hook" ist.
Geschweige den was ein "Handle" ist.
Man erfragt schlicht weg die "ID" des handles im Betriebssystem, die "einzigartig" für jedes Fenster vergeben wird (anders würde das OS gar nicht sinnvoll mit Fenstern arbeiten, da der Fenstername komplett beliebig auch doppelt vergeben sein kann).
Das Fenster das wir suchen wird über die Windows API ausgelesen.
WinGetHandle ist eine standard Funktion.
Der Name des Window lässt auf den Prozess und das Handle schließen, folgend kann über diese ID das Window angesprochen werden, anstatt das über sonstige Wege zu tun.
Ein Hook hat mit dem absolut garnichts zu tun, mit dem Code des Spiels schon 10mal nicht.
Dazu hast du zu lesen:
Willst du tiefgreifend den Speicher manipulieren, benötigst du entsprechende Rechte, oder du versuchst dich mit einem Hook, was wie gesagt hier komplett vorbei sinnfrei ist, da keinerleih Information im Speicher des Spiels irgendwie verändert wird, nicht einmal ausgelesen. AutoIT setzt komplett auf der Windows API auf und jedes brauchbarer C code wird das gleiche tun wenn du nicht auf die hirnrissige Idee kommst die Windows API "umzuschreiben".
Zum Thema AutoIT schaust du dir wohl besser direkt den Source Code an, anstatt irgend ein sau blödes Halbwissen abzuseilen:
Sollte dir aus der glorreichen Weisheit deines Schwams die brennende Erleuchtung kommen wie du die größte Trivialität überhaupt ohne Windows API und mit sinnvoller Menge Code erreichen willst, dann bitte her damit.
Ansonsten, gut das wir das besprochen haben, der Nächste bitte.