Was Du in der Funktion machst ist an fixen Offsets die Parameter zu lesen. Die Offsets mögen für Windows XP konstant sein, können sich in späteren Windows Versionen aber ändern.
Der korrekte Weg wäre die Adresse des PEB innerhalb des fremden Prozesses zu ermitteln, den PEB dann auszulesen um den Pointer auf die ProcessParameters Datenstruktur zu erhalten, selbige dann wiederum zu lesen um dann letztlich an die Command Line zu kommen. Die Methode funktioniert dann auch für alle Windows Versionen, solange sich die Datenstrukturen nicht grundlegend ändern. Da Microsoft aber meist neue Parameter "hinten dranhängt", solltest Du damit keine Probleme haben.
Eine Implementation des Ganzen gibts hier sogar im Board:
http://www.delphipraxis.net/internal...=873389#873389
PS: Gewöhn Dir an statt "Magic Values" Konstanten zu benutzen. Niemand weiß sonst was $200000 dort soll oder $44.