Давно я не был здесь, да и вообще за компьютером - сын у меня родился
Но вот после долгого перерыва я снова сел за программирование.
И почти сразу натолкнулся на такую вот проблему.
Есть задача: надо программно получить вывод команды
- Код: Выделить всё
ps -lax
Это полная информация с процессах, запущенных в системе. Причем запущенные процессы, что важно для меня, показываются полностью, т.е. полный путь до файла + параметры. (далее полный путь)
казалось бы чего проще, ан нет. Нашел-таки пару подводных камней.
Итак, используем tprocess
- Код: Выделить всё
uses ... , process, CLASSES;
....
var AProcess : tprocess;
astringlist : tstringlist;
...
begin
s := 'ps -lax';
AProcess := TProcess.Create(nil);
AProcess.CommandLine := s;
AProcess.Options := AProcess.Options + [powaitonexit, pousepipes];
AProcess.Execute;
AStringList.LoadFromStream(Aprocess.output);
AProcess.free;
далее раскидываем итог по по ячейкам stringgrid ...
и получаем итог. В колонке, где отображается полный путь, вписываются только первые 11 символов, остальное отбрасывается (рис1).
Честно, я долго игрался с этим куском. Однако, победить не смог.
Может, подскажите, в чем причина и как исправить?