OK!
Anbei die include und Zubehör.
http://www.autoit.de/index.php?page=Thread&threadID=23507
OK!
Anbei die include und Zubehör.
http://www.autoit.de/index.php?page=Thread&threadID=23507
Da kann nicht mal ein Obfuscator mithalten, aber ich werde versuchen mich da morgen durchzuwühlen.
Edit: Der Fehler muss aber von 'LogAitDave_V3.0.exe' kommen und das ist keine AutoIt Datei und auch der Quellcode davon ist nicht dabei!?
hi moin.
Nein weiteren Quellcode gibt´s nicht.
Aber die 'LogAitDave_V3.0.exe' wird ja, wenn ich mich recht entsinne, von meinem Skript nur immer wieder neu ausgeführt. Und trotzdem schwillt der Speicherbedarf des AI-Skripts immer weiter an.
Func _ReduceMemory($i_PID = -1)
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
Else
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return[0]
EndFunc;==> _ReduceMemory()
Die Funktion dürfte dir helfen lasse sie einfach über adliberegist aufrufen sagen wir in 5-10min tackt
Hallo!
Danke! Klappt leider nicht.
Das unkompilierte Skript wird gekillt sobald die Funk aufgerufen wird.
Das kompilierte gibt dann einen AutoIt-Error "Variable used without being declared". Kann ich aber nicht nachvollziehen..
hast du den die ProcessId von den process dort angegeben
So richtig?
siehe ganz unten, ganz links im Screenshot
Ein Name ist keine PID. Prozesse können den gleichen Namen haben, die PID gibt es nur EINMAL und sie ist die Nummer des Prozesses. Beim start des Programms kannst du sie speichern (RUN("?.exe"))
oder du kannst ProcessList nutzen, um die Prozesse mit namen und id zu listen.
Wen du dein eigenes Script "leeren" willst nutze
@AutoItPID | Process identifier (PID) of the current script. |
Ansonsten $pid=run("dein program was du Startes")
Func _ReduceMemory($i_PID = @AutoItPID)
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
Else
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return[0]
EndFunc;==> _ReduceMemory()
variable used without beeing declared...
und nu?
und nu sollen wir die Variable suchen, die du nicht declared hast? -.- Gib doch wenigstens auch den Namen der Variable an...
Zum Problem: Wie willst du $ai_Return zurückgeben, wenn du es local in den If-Anweisingen erstellst?
Func _ReduceMemory($i_PID = @AutoItPID)
Local $ai_Return
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
$ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
Else
$ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return[0]
EndFunc;==> _ReduceMemory()
Alles anzeigen
Falls das da oben kein Formatierungsfehler vom Forum war: Einrücken hilft!!!