Wenn es geklappt hat dann setz doch beim nächsten Mal den Threadstatus auf gelöst in dem du den 1. Beitrag editierst. Ich hab das mal für dich übernommen.
Beiträge von alpines
-
-
Es werden hier generell keine Threads gelöscht oder geschlossen. Der grüne Haken ist genau dafür da, dass andere User die Lösung hier direkt finden.
-
Dann hast du da was nicht richtig gemacht, ich meinte das eher so. Das Bild als Test: http://www.moorhuhn.de/images/spiele/mh_2_add.png
Wenn du das ganze ein bisschen genauer haben willst, kannst du auch schauen wo auf der GUI geklickt wurde und abfragen ob der Mauszeiger auf die Hintergrundfarbe zeigt, oder eine andere.
Sollte es eine andere sein (kannst es auch auf einen bestimmten Bereich eingrenzen), dann hast du aufs Bild geklickt.AutoIt
Alles anzeigen#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> $Form1 = GUICreate("Form1", 201, 249, 283, 212) $Label1 = GUICtrlCreateLabel("", 12, 8, 176, 225) GUISetState(@SW_SHOW) _GDIPlus_Startup() $hGraphics = _GDIPlus_GraphicsCreateFromHWND($Form1) $hImage = _GDIPlus_ImageLoadFromFile("mh.png") _GDIPlus_GraphicsDrawImage($hGraphics, $hImage, 12, 8) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _GDIPlus_ImageDispose($hImage) _GDIPlus_GraphicsDispose($hGraphics) _GDIPlus_Shutdown() Exit Case $Label1 MsgBox(0,0,"clicked") EndSwitch WEnd -
Schön das es klappt. Du solltest allerdings bei DllCalls immer prüfen ob der Rückgabewert überhaupt korrekt ist, oder ob der Call fehlgeschlagen ist, denn sonst crasht dein Script sofort mit "Subscript used with non-array".
Wenn dein Problem gelöst ist würde es mich freuen, wenn du den grünen Haken für gelöst / erledigt setzt indem du den 1. Beitrag in diesem Thread bearbeitest.
Solltest du dennoch weitere Fragen zu diesem Thema oder einem anderen haben bist du natürlich eingeladen sie hier zu posten oder einen neuen Thread aufzumachen. -
Habe es auch mal probiert und es klappt bei mir ebenfalls nicht. Wenn man den Parent wegnimmt taucht die GUI wieder auf aber das Bild verschwindet wenn man den Parent setzt.
Schade, dann musst du das mit anderen Mitteln lösen.Muss dein Huhn denn exakt anklickbar sein? Also muss die Form zu 100% passen? Ansonsten kannst du ja mit 2-3 transparenten Labels die Klicke abfangen und mit Gdi+ einfach das Huhn draufzeichnen. So hast du dann keine exakte Maske die du klicken kannst aber eine Form die in etwa passt.
-
Mit so wenig Code kann ich nicht viel anfangen. Man kann daraus nur ersehen das du die IniReadSection einmal verwendest was ich aber nicht meinte.
-
Ja, wenn du willst das am Ende nichts an Müll oder Daten übrig bleibt, dann löscht du am besten die Dateien wieder. Wenn du sie nicht löscht, dann extrahiert AutoIt sie aber nicht mehr und das sollte um einiges flotter gehen.
Es heißt AutoIt weil man damit Prozesse automatisiert ("automatisiere es"). Das IT dahinter steht nicht für Informationstechnik.
-
Dann hast du nicht das Script verwendet was ich in dem Beitrag gepostet hatte.
Im Grunde machst du folgendes:
Du erstellst eine GUI mit der Funktion die in dem Script mitgeliefert ist. Die erstellt dir nämlich eine randlose GUI auf der du Controls platzieren kannst.
Auf dieser GUI platzierst du aber keine Controls, sondern erstellst noch eine neue GUI - diesmal mit der Standardfunktion.Jetzt nimmst du _WinAPI_SetParent und setzt als Childwindow das von Moorhuhn und das Parentwindow wird dann die neue normale GUI.
Nun sollte das Kanonenfutter in der GUI auftauchen. Und mit Hilfe von WM_Messages kannst du die Klicks auf das Bild abfangen.
Oder du erstellst ein durchsichtiges Label was du über das ganze Childwindow ziehst und nimmst GUICtrlSetOnEvent auf das Labelcontrol. -
Schön das ich dir helfen konnte. Ich hab den grünen Haken für erledigt / gelöst gesetzt.
Du kannst das auch machen indem du den 1. Beitrag in diesem Thread editierst.Außerdem solltest du nicht vergessen das es AutoIt heißt, und nicht "AutoIT"!
-
Genau. FileInstall kommt ganz oben ins Script rein und dann kannst du mit Run/Wait oder ShellExecute/Wait und @ScriptDir die Sachen ausführen.
Du brauchst eigentlich das @ScriptDir nicht, da dein working directory sowieso dasselbe ist aber es kann nicht schaden. -
Mit FileInstall kannst du die Dateien an die Exe ranhängen und beim starten automatisch extrahieren lassen. Am besten arbeitest du dann im @ScriptDir Ordner wenn du FileInstall verwendest.
Dennoch solltest du deine Batch-Scripte in AutoIt portieren. -
Was meinst du mit zip.exe kompilieren? Was soll dein AutoIt Script überhaupt machen?
-
Ich hab mal den grünen Haken für erledigt / gelöst gesetzt. Das erledigst du indem du den 1. Beitrag in diesem Thread bearbeitest.
-
Du hast dich nicht falsch ausgedrückt. Ich hab dich auch nicht falsch verstanden.
Es gibt kein Control was die Sachen erfüllt die du haben möchtest. Mit GDI+ zeichnest du nur auf ein Fenster, aber das gezeichnete ist weder abfangbar noch klickbar.
Wenn du dir das letzte Script mal anschaust was ich in der letzten Antwort verlinkt habe, dann hast du eine GUI mit einem Rahmen der um das Bild herum ist und zudem noch durch die transparenten Bereiche klickbar ist.Wenn du nun die _WinAPI_SetParent-Funktion damit kombinierst, dann hast du eine Haupt-GUI und eine zweite GUI (der als Button agiert) in einem Fenster.
Mit einer WM_MESSAGE kannst du die Klicks dann abfangen und schon hast du einen "ImageButton". -
Windows weigert sich allerdings Exen mit dem Privileg automatisert zu starten.
Wenn du davon sprichst das dein #RequireAdmin Script im Autostart liegt, dann musst du das mit der Windows Taskplanung machen.
Dort kannst du Adminprogramme autostarten lassen ohne das die UAC Prompt auftaucht. Hier mal ein ähnlicher Fall: http://superuser.com/questions/7704…pt-in-windows-7
-
Ich kenne dich nicht, aber ich Gönne dir den Sieg! Ich nehme mal an Das du genau weißt worrauf man in diesem Wirtschaftlichen System Achten muss um sein Geld richtig zu platzieren.
Es wären eigentlich +1820 gewesen wenn die 1000 die ich investiert hatte nicht in den Keller gefallen wären. Konnte zum Glück noch mit andern Aktionen die +820 rausholen

Kläglich finde ich übertrieben. Wie minx gesagt hat, theoretisch habe ich am meisten Geld eingenommen (wenn man nicht beachtet wieviel ich zuerst verloren habe )
So läuft das nun mal nicht
Ich hatte zeitweilig einen Kontostand von knapp 3000 bis mir eine Aktie nach der anderen, wie vorhin erwähnt, in den Keller gerauscht ist! -
Es lässt sich nicht wirklich heraus lesen um was es bei diesem Duell ging
Jeder fing mit 1000€ an und das Duell lief eine ganze Woche (Aktien kaufen / verkaufen). Der einzige der Profit gemacht hat war ich, der Rest ist kläglich gescheitert

-
Schön das du den Fehler gefunden hast aber dein Script kann man definitiv besser schreiben.
Zuerst solltest du dir den Begriff "If-Schleife" abgewöhnen, sowas gibt es nicht. Ein If-Befehl ist eine Verzweigung und keine Schleife.
Zum anderen kannst du den dritten Parameter bei der Random-Funktion verwenden mit der du ganzzahlige Ergebnisse direkt kriegst wenn du den Parameter auf 1 setzt.
Somit sparst du dir den extra Round-Befehl direkt danach.Deine If-Abfrage If $MoeGLICHKEITINPUT1 = 1 Then ist absolut falsch und unnötig dazu.
Wenn dein Programm bei der Generierung der 1. Zufallszahl definitiv nicht scheitern kann (was der Fall ist), dann brauchst du diese If-Abfrage überhaupt nicht.
Lass sie einfach weg und füll die zweite InputBox direkt.Außerdem ist die Bedingung falsch. $MoeGLICHKEITINPUT1 = 1 würde prüfen ob der Inhalt von $MoeGLICHKEITINPUT1 gleich 1 ist obwohl dort nur Strings wie "Moeglichkeit 8 in INPUT 1" enthalten sind. Du müsstest - wenn du überhaupt diese If-Abfrage haben willst - prüfen ob der String leer ist oder nicht, was wie gesagt nicht notwendig ist weil die If-Abfrage Müll ist.
Zuletzt solltest du dir doch angewöhnen deinen Code gut und sauber zu strukturieren, Einrückungen richtig einzuhalten und deinen Variablen sowie Funktionen bessere und aussagekräftigere Namen zu geben. $MoeGLICHKEITINPUT1 ist einfach falsch.
-
Herzlich Willkommen im Forum

-
Wozu so umständlich?
Im geöffneten SciTE: Ctrl+F7Habs nicht so mit den Hotkeys in SciTE, kannte nur F7 zum compilen.