Erstens: Wo tritt der Fehler auf? (praktisch, wenn sowas mit erwähnt würde)
Ok, ich weiß schon Sleep, aber weißt du auch warum?
Wärend Sleep wird der erstellte Thread ausgeführt und dort schlägt der Aufruf von CreateProcess fehl (liegt bestimmt an deinen "komischen" Parametern).
Leg mal einen Haltepunkt auf den Beginn deiner Treadprozedur und schau was passiert.
Dann wäre es gut, wenn du deiner Threadprozdur richtig defnierst
siehe
MSDN > ThreadProc
zur StartupInfo (SI), was soll hSocket:=PInteger(99); darstellen?
hmm 127.0.0.1 99, aber ob das so richtig ist
[add]
... := hSocket^;
ist auch nicht soooo korrekt.
versuch doch für den Anfang erstmal einen direkten Aufruf, dann läßt es sich leicher Debuggen
und plötlich fällt och der
hSocket^-Fehler auf.
Delphi-Quellcode:
function CreateShell(lpParameter: LongWord): LongWord; StdCall;
var...
begin
...
end;
begin
//CreateThread(nil, 0, @CreateShell, nil, 0, shellThreadID);
CreateShell(0);
//auf quit warten
repeat
//sleep(100);
ReadLn(str);
until str = 'quit';
end.