Es könnte ja auch sein, dass irgendwas an deinem Script angepasst werden muss um es auf Win7 zum funktionieren zu bringen. Aber ohne Script geht das schlecht.
Beiträge von name22
-
-
Ich denke meine "Algorythmus" ist der einfachste/ineffizienteste, aber ich mache mal mit.

-
Das eine Bild stammt aus dem MMORPG Metin2. Soweit ich weiß ist das ein Level 71er "Böser Baum". XD
-
Kann es sein, dass ich diese Bilder irgendwo schon einmal gesehen habe?

-
Vielleicht geht das mit der ANYGUI.au3
-
Wieso lädst du nicht einfach die Dateien in einer rar hier hoch?
-
Wieso nicht ganz primitiv mit pixelsearch und mouseclicks?
-
Oder
[autoit]_Timer_GetIdleTime()
[/autoit]aus der Timers.au3 in eine If Abfrage packen
-
Wieso benutzt du nicht _BASS_SetVolume und _BASS_GetVolume, wo du doch sowieso die BASS.au3 includest?
-
Vielleicht kann die ANYGUI.au3 helfen. Ich kann mir das leider gerade nicht anschauen, da ich nicht an meinem PC sitze.
-
So dürfte jetzt nicht mehr passieren
siehe Post 1
Das mit dem Selbstkollisionscheck wäre cool, aber ich weiß leider nicht ganz wie ich das angehen soll. -
Das heißt, dass die Variable kein Array ist und auch nicht als solches behandelt werden kann.
-
Für's zippen probier mal die ZIP UDF aus. Ich weiß allerdings nicht ob sich zip Dateien verschlüsseln lassen (bin recht zuversichtlich
) -
Du müsstest alle paar Minuten/Sekunden die Seite aktualisieren und jedesmal den HTML Quelltext analysieren z.B. mit InetRead. Sobald der Quelltext eine markante veränderung aufweist die darauf hinweist das das Thema entsperrt ist geht das Script weiter. Hier im PseudoCode:
[autoit]
[/autoit]
Do
$HTML = InetRead("www.beispiel.de")
Until Not StringInStr($HTML, "Markante Veränderung") = 0
_SchreibInsForum()
Was wird das denn wenn es fertig ist? -
Funktioniert ControlEnable nicht? Ansonsten einfach mal mit der AutoIt WIndow Info die nötigen Daten zusammensuchen.
[autoit]
So in etwa:ControlEnable("Fenstertitel oder Handle", "Fenstertext (In den meisten Fällen nicht benötigt)", "z.B.[CLASS:QWidget; INSTANCE:3]")
[/autoit] -
Ach was wieso sollte ich böse sein. Die Idee mit Snake hatte ich auch, aber das wurde ja schon gemacht.

-
Das das nur einmal drinsteht liegt daran, dass die Datei mit FileOpen im Schreibmodus 1 geöffnet ist, also überschreibt ein FileWrite Befehl mit diesem Handle alles was vorher drinstand.
-
Hab deinen Code mal ein wenig umgeändert
Spoiler anzeigen
[autoit]$servername = "www.int-tut.bplaced.net"
[/autoit] [autoit][/autoit] [autoit]
$projektname = "filemanager/InteraktivesTutorial/updates"
$exedatei = "InterTutorials_Gui.exe"
$temp = @DocumentsCommonDir & "\temp"
$update = MsgBox(52, "Updateassistent", "Das Programm wird sich mit dem Internet verbinden, um nach Updates zu suchen. Jetzt verbinden?")Switch $update
[/autoit]
Case 6
If DirGetSize($temp) = -1 Then DirCreate($temp)
ProgressOn("Updater", "Überprüfe, ob Server erreichbar ist...")
Sleep(2000)
If Ping($servername, 250) Then
ProgressSet(20, "Updater", "Verbunden!")
Sleep(2000)
Else
ProgressOff()
MsgBox(16, "FEHLER", "Das Update Modul hat einen Fehler abgefangen, Grund: der Server ist leider nicht erreichbar oder deine Internetverbindung ist nicht aktiviert.")
EndIf
ProgressSet(40, "Updater", "Lade Update Info Datei herunter...")
InetGet("http://" & $servername & "/" & $projektname & "/version.txt", $temp & "\versionnew.txt")
Sleep(500)
$downloaded = FileRead($temp & "\versionnew.txt")
$localversion = FileRead($temp & "\versionold.txt")
ProgressSet(60, "Updater", "Vergleiche Server Version mit local Version...")
Sleep(1000)
If $downloaded = $localversion Then
ProgressOff()
MsgBox(16, "Updater", "Keine neue Version vom Interaktiven Tutorial verfügbar")
FileDelete($temp & "\versionnew.txt")
EndIf
If $downloaded > $localversion Then
ProgressSet(80, "Updater", "Lade neue Version herunter...")
InetGet("http://" & $servername & "/" & $projektname & "/" & $exedatei, @DesktopDir & $exedatei)
ProgressSet(100, "Updater", "Aktualisiere Versionsdaten...")
FileWrite($temp & "\versionold.txt", $downloaded)
Sleep(1000)
MsgBox(64, "Updater", "Eine neue Version von " & $exedatei & " wurde installiert, das neue Programm befindet sich auf dem Desktop")
FileDelete($temp & "\versionnew.txt")
EndIf
Case 7
MsgBox(64, "Updateassistent", "Update verweigert")
EndSwitch
Ist aber immer noch ein ziemlicher Flickenteppich
Edit: Ich habe mir auch mal einen Updater gemacht. Im Anhang sind alle nötigen Dateien. Vielleicht kannst du dir ja was abschauen.
[autoit]
Edit2: Du kannst eine Datei nur mit FileClose schließen wenn du sie mit FileOpen geöffnet hast.FileRead("Test.txt")
[/autoit]
[autoit]
macht schließlich nichts anderes als:$File = FileOpen("Test.txt", 1)
[/autoit]
FileRead($File)
FileClose($File)
FileOpen wird nur gebraucht um Dateien in besoderen Schreib- oder Lesemodi zu öffnen, oder um bei mehreren Lesevorgängen oder großen Dateien die Performance nicht zu beeinträchtigen. -
Ich glaube wenn das ein Spiel wird und da später noch mehr dazukommt ist GDI+ vielleicht besser geeignet.
-
Ein Script das eine sich ständig fortführende geschlängelte Linie in ein Fenster zeichnet:
Am anfang des Scripts sind Globale Variablen für die EinstellungenSpoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GDIPlus.au3>Global $GUIWidth = 400 ;Breite des Fensters
[/autoit] [autoit][/autoit] [autoit]
Global $GUIHeight = 400 ;Höhe des Fensters
Global $Size = 3 ;Durchmesser des Kreises der die einzelnen Bögen vervollständigt
Global $PenSize = 1 ;Randstärke der Linie
Global $Angle = Random(0, 3, 1) * 90 ;Startwinkel (Gültige Werte: 0°, 90°, 180°, 270°)
Global $iX = Random($Size, $GUIWidth / $Size - $Size, 1) * $Size ;X-Startkoordinate
Global $iY = Random($Size, $GUIHeight / $Size - $Size, 1) * $Size ;Y-Startkoordinate
Global $GUIColorBG = 0xFFFFFFFF ;Hintergrundfarbe der GUI
Global $LineColor = 0xFF000000 ;Farbe der geschlängelten Linie
Global $RandomFactor = 40 ;Wahrscheinlichkeit eines Richtungswechsels (1 zu...)If $Angle = 0 Then
[/autoit] [autoit][/autoit] [autoit]
Global $VectorX = $Size
Global $VectorY = 0
ElseIf $Angle = 90 Then
Global $VectorX = 0
Global $VectorY = $Size
ElseIf $Angle = 180 Then
Global $VectorX = $Size * - 1
Global $VectorY = 0
ElseIf $Angle = 270 Then
Global $VectorX = 0
Global $VectorY = $Size * - 1
EndIfGlobal $Switch180 = 180
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Schlangenlinien", $GUIWidth, $GUIHeight)
[/autoit] [autoit][/autoit] [autoit]
GUISetState()_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
[/autoit] [autoit][/autoit] [autoit]
Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphics)
Global $Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($Buffer, 2)
_GDIPlus_GraphicsClear($Buffer, $GUIColorBG)Global $hPen = _GDIPlus_PenCreate($LineColor, $PenSize)
[/autoit] [autoit][/autoit] [autoit]AdlibRegister("_DrawArc", 20)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_PenDispose($hPen)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEndFunc _DrawArc()
[/autoit] [autoit][/autoit] [autoit]
If Random(1, 40, 1) = 1 Then
_ChangeDirection()
EndIf
#Region CollisionCheck
If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY < $GUIHeight / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size
$Angle = 90
EndIf
If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY >= $GUIHeight / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size * - 1
$Angle = 270
EndIf
If $iX <= 0 And $Angle = 180 And $iY < $GUIHeight / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size
$Angle = 90
EndIf
If $iX <= 0 And $Angle = 180 And $iY >= $GUIHeight / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size * - 1
$Angle = 270
EndIf
If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX < $GUIWidth / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size
$VectorY = 0
$Angle = 0
EndIf
If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX >= $GUIWidth / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size * - 1
$VectorY = 0
$Angle = 180
EndIf
If $iY <= 0 And $Angle = 270 And $iX < $GUIHeight / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size
$VectorY = 0
$Angle = 0
EndIf
If $iY <= 0 And $Angle = 270 And $iX >= $GUIHeight / 2 Then
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size * - 1
$VectorY = 0
$Angle = 180
EndIf
#EndRegion CollisionCheck
$iX += $VectorX
$iY += $VectorY
$Switch180 *= -1
_GDIPlus_GraphicsDrawArc($Buffer, $iX, $iY, $Size, $Size, $Angle, $Switch180, $hPen)
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
EndFunc ;==>_DrawArcFunc _ChangeDirection()
[/autoit]
If $Angle = 0 Or $Angle = 180 Then
If Random(0, 1, 1) = 1 Then
$Angle = 90
Else
$Angle = 270
EndIf
ElseIf $Angle = 90 Or $Angle = 270 Then
If Random(0, 1, 1) = 1 Then
$Angle = 0
Else
$Angle = 180
EndIf
EndIf
If $iX >= $GUIWidth - $Size * 2 Then $Angle = 180
If $iY >= $GUIHeight - $Size * 2 Then $Angle = 270
If $iX <= 0 Then $Angle = 0
If $iY <= 0 Then $Angle = 90
If $Angle = 0 Then
$VectorX = $Size
$VectorY = 0
ElseIf $Angle = 90 Then
$VectorX = 0
$VectorY = $Size
ElseIf $Angle = 180 Then
$VectorX = $Size * - 1
$VectorY = 0
ElseIf $Angle = 270 Then
$VectorX = 0
$VectorY = $Size * - 1
EndIf
_GDIPlus_GraphicsDrawEllipse($hGraphics, $iX, $iY, $Size, $Size, $hPen)
EndFunc ;==>_ChangeDirection
Ich gehe nicht davon aus das das irgendjemand gebrauchen kann, aber nunja
Edit: Version mit Pfeiltastensteuerung
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GDIPlus.au3>
#include <Misc.au3>Global $GUIWidth = 400 ;Breite des Fensters
[/autoit] [autoit][/autoit] [autoit]
Global $GUIHeight = 400 ;Höhe des Fensters
Global $Size = 3 ;Durchmesser des Kreises der die einzelnen Bögen vervollständigt
Global $PenSize = 1 ;Randstärke der Linie
Global $Angle = Random(0, 3, 1) * 90 ;Startwinkel (Gültige Werte: 0°, 90°, 180°, 270°)
Global $iX = Random($Size, $GUIWidth / $Size - $Size, 1) * $Size ;X-Startkoordinate
Global $iY = Random($Size, $GUIHeight / $Size - $Size, 1) * $Size ;Y-Startkoordinate
Global $GUIColorBG = 0xFFFFFFFF ;Hintergrundfarbe der GUI
Global $LineColor = 0xFF000000 ;Farbe der geschlängelten LinieGlobal $LEFT = False
[/autoit] [autoit][/autoit] [autoit]
Global $UP = False
Global $RIGHT = False
Global $DOWN = FalseIf $Angle = 0 Then
[/autoit] [autoit][/autoit] [autoit]
$RIGHT = True
Global $VectorX = $Size
Global $VectorY = 0
ElseIf $Angle = 90 Then
$DOWN = True
Global $VectorX = 0
Global $VectorY = $Size
ElseIf $Angle = 180 Then
$LEFT = True
Global $VectorX = $Size * - 1
Global $VectorY = 0
ElseIf $Angle = 270 Then
$UP = True
Global $VectorX = 0
Global $VectorY = $Size * - 1
EndIfGlobal $Switch180 = 180
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Schlangenlinien", $GUIWidth, $GUIHeight)
[/autoit] [autoit][/autoit] [autoit]
GUISetState()_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
[/autoit] [autoit][/autoit] [autoit]
Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphics)
Global $Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($Buffer, 2)
_GDIPlus_GraphicsClear($Buffer, $GUIColorBG)Global $hPen = _GDIPlus_PenCreate($LineColor, $PenSize)
[/autoit] [autoit][/autoit] [autoit]AdlibRegister("_DrawArc", 20)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_GraphicsDispose($Buffer)
_GDIPlus_ImageDispose($hBitmap)
_GDIPlus_PenDispose($hPen)
_GDIPlus_Shutdown()
Exit
EndSwitch
If _IsPressed("25") Then
If $LEFT = False Then
$LEFT = True
$UP = False
$RIGHT = False
$DOWN = False
$Angle = 180
$VectorX = $Size * - 1
$VectorY = 0
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
Sleep(100)
EndIf
EndIf
If _IsPressed("26") Then
If $UP = False Then
$LEFT = False
$UP = True
$RIGHT = False
$DOWN = False
$Angle = 270
$VectorX = 0
$VectorY = $Size * - 1
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
Sleep(100)
EndIf
EndIf
If _IsPressed("27") Then
If $RIGHT = False Then
$LEFT = False
$UP = False
$RIGHT = True
$DOWN = False
$Angle = 0
$VectorX = $Size
$VectorY = 0
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
Sleep(100)
EndIf
EndIf
If _IsPressed("28") Then
If $DOWN = False Then
$LEFT = False
$UP = False
$RIGHT = False
$DOWN = True
$Angle = 90
$VectorX = 0
$VectorY = $Size
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
Sleep(100)
EndIf
EndIf
WEndFunc _DrawArc()
[/autoit]
#Region CollisionCheck
If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY < $GUIHeight / 2 Then
$LEFT = False
$UP = False
$RIGHT = False
$DOWN = True
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size
$Angle = 90
EndIf
If $iX >= $GUIWidth - $Size * 2 And $Angle = 0 And $iY >= $GUIHeight / 2 Then
$LEFT = False
$UP = True
$RIGHT = False
$DOWN = False
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size * - 1
$Angle = 270
EndIf
If $iX <= 0 And $Angle = 180 And $iY < $GUIHeight / 2 Then
$LEFT = False
$UP = False
$RIGHT = False
$DOWN = True
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size
$Angle = 90
EndIf
If $iX <= 0 And $Angle = 180 And $iY >= $GUIHeight / 2 Then
$LEFT = False
$UP = True
$RIGHT = False
$DOWN = False
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = 0
$VectorY = $Size * - 1
$Angle = 270
EndIf
If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX < $GUIWidth / 2 Then
$LEFT = False
$UP = False
$RIGHT = True
$DOWN = False
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size
$VectorY = 0
$Angle = 0
EndIf
If $iY >= $GUIHeight - $Size * 2 And $Angle = 90 And $iX >= $GUIWidth / 2 Then
$LEFT = True
$UP = False
$RIGHT = False
$DOWN = False
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size * - 1
$VectorY = 0
$Angle = 180
EndIf
If $iY <= 0 And $Angle = 270 And $iX < $GUIHeight / 2 Then
$LEFT = False
$UP = False
$RIGHT = True
$DOWN = False
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size
$VectorY = 0
$Angle = 0
EndIf
If $iY <= 0 And $Angle = 270 And $iX >= $GUIHeight / 2 Then
$LEFT = True
$UP = False
$RIGHT = False
$DOWN = False
_GDIPlus_GraphicsDrawEllipse($Buffer, $iX, $iY, $Size, $Size, $hPen)
$VectorX = $Size * - 1
$VectorY = 0
$Angle = 180
EndIf
#EndRegion CollisionCheck
$iX += $VectorX
$iY += $VectorY
$Switch180 *= -1
_GDIPlus_GraphicsDrawArc($Buffer, $iX, $iY, $Size, $Size, $Angle, $Switch180, $hPen)
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
EndFunc ;==>_DrawArc
Edit2: Update
Bild verschwindet nicht mehr nachdem man das Fenster minimiert o.Ä. (Wird in Bitmap zwischengespeichert)