Я согласен с abudaan, вам не нужно closeInput()
.
Также предложите добавить разрыв строки в конце вызова writeUTFBytes (), например ::1004*
NP.standardInput.writeUTFBytes("start C:\\Windows\\System32\\rundll32.exe shell32.dll,Control_RunDLL hotplug.dll **\n**");
Наконец, я рекомендую вам прослушать другие события в NativeProcess, я использую блок кода примерно так:
NP.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onStdOutData);
NP.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onStdErrData);
NP.addEventListener(Event.STANDARD_OUTPUT_CLOSE, onStdOutClose);
NP.addEventListener(ProgressEvent.STANDARD_INPUT_PROGRESS, onStdInputProgress);
NP.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);
NP.addEventListener(IOErrorEvent.STANDARD_INPUT_IO_ERROR, onIOError);
NP.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
с обычными функциями-обработчиками событий, которые как минимум отслеживают то, что они получают.
Удачи - я только что потратил несколько часов на доработку NativeProcess с помощью cmd.exe - это круто. Но я попал туда в конце, и вы тоже.