Seite 1 von 1
Prozess erstellen
Verfasst: 24.09.2012 12:09
von Lambda
Um Änderungen am eigenen Programm durchzuführen müsste ein neuer Prozess gestartet werden damit der eigene beendet werden kann.
Ich möchte nur ungern dazu eine temporäre EXE erstellen und würde gerne einen Thread in einen eigenständigen Prozess setzen. Wie gehe ichh hierbei am besten vor?
lg
Re: Prozess erstellen
Verfasst: 24.09.2012 13:05
von bobobo
ää .. z.B. in windoof gibt es GetCurrentProcessId_()
ich denke, es gibt auch ein getcurrentthreadid_()
und somit wohl auch dort eventuelle Tuningmöglichkeiten
ein Beispiel mit der ProzessID
Code: Alles auswählen
Procedure SetPriority(ProgramID.l, PriorityLevel.l)
Protected ProcessHandle.l
ProcessHandle = OpenProcess_(#PROCESS_DUP_HANDLE + #PROCESS_SET_INFORMATION, #True, ProgramID)
If ProcessHandle
SetPriorityClass_(ProcessHandle, PriorityLevel)
CloseHandle_(ProcessHandle)
EndIf
EndProcedure
SetPriority( GetCurrentProcessId_(), #IDLE_PRIORITY_CLASS)
Re: Prozess erstellen
Verfasst: 24.09.2012 14:24
von Lambda
Es gäbe auch CreateProcess, aber das hilft spontan nicht weiter. Ich muss praktisch einen Thread abkoppeln der zum eigenständigen Prozess wird, da er weiterlaufen soll nachdem der eigentliche Prozess beendet wurde. ^^
Re: Prozess erstellen
Verfasst: 24.09.2012 17:25
von bobobo
hmm .. such doch mal createremotethread hier und im englishen Forum
Wenn Dein Thread gleich an einem anderen Prozess hängt brauchst Du
den auch nicht mehr umzubiegen.
Re: Prozess erstellen
Verfasst: 24.09.2012 18:29
von Lambda
Die Methode ist auch schon bedacht, aber an welchen sollte ich es schon anhängen? Explorer?

Sollte ja nicht wie ein Hack konstruiert werden.
Re: Prozess erstellen
Verfasst: 24.09.2012 19:03
von Thorium
Das ist nicht möglich.
Solange Code von der .exe ausgeführt wird, ist diese Schreibgeschützt, wo der ausgeführt wird spielt keine Rolle. Ohne temporäre Datei (ob .exe oder .bat) ist es schlicht nicht machbar.