AutoIt ändert Value nicht

03/27/2012 21:38 robot609#1
Moinsen,

ich habe hier ein kleines AutoIt Script für S4 geschrieben, dass eine bestimmte Map zu einer anderen macht. Wenn ich das Spiel nun bypassed starte, passiert nix. Das script schließt sich nicht und die Map wird auch nicht verändert. Ich weiß nicht warum. Ich hoffe, dass mir jemand helfen kann.

Der Quellcode:
03/27/2012 21:44 jacky919#2
Strings sind zu lang. Es es kein Platz für die terminierende 0.
Außerdem gibt ProcessExists die PID zurück, falls der Prozess nicht existiert 0.
03/27/2012 21:51 robot609#3
Quote:
Originally Posted by jacky919 View Post
Strings sind zu lang. Es es kein Platz für die terminierende 0.
Außerdem gibt ProcessExists die PID zurück, falls der Prozess nicht existiert 0.
Hmmm...Was kann man den gegen die Strings machen? Nix?
Und ich hatte es schon Mit ProcessWait versucht, das ging aber auch nicht.
03/28/2012 16:24 Njahs#4
Code:
		Case -3
			Exit
			If ProcessExists("S4Client.exe") <> 1 Then
				_Werte_Aendern
			EndIf
Sprich: Beenden -> Wert ändern? hmm
03/28/2012 17:55 KDeluxe#5
"string" ist in diesem Fall als Datentyp ungültig. Einen String müsste man ohnehin als "str" (ANSI) bzw. "wstr" (UNICODE) übergeben. Richtig wäre "char".
Um immer einfach nur die Zeichenketten zu übergeben, könntest du eine kleine Funktion benutzen:
Code:
Func _MemoryWriteString($Address, $Handle, $String)
	_MemoryWrite($Address, $Handle, $String, "char[" & StringLen($String) + 1 & "]")
EndFunc