Витягти - дані із DOS вікна
Здрастуйте, зіткнувся з проблемою, якщо хтось знає напишіть, заздалегідь дякую. , SW_SHOWNORMAL ); надсилаю запит на Cisco пристрій, залежно від команди в DOS вікні виводяться певні дані і вікно DOS-a закривається. Якщо хтось стикався з таким завданням, підкажіть як інформацію з DOS вікна "перекинути" на форму наприклад в Memo або наприклад зберегти інформацію з вихідними даними з вікна DOS-a на комп'ютер, щоб потім їх витягнути з отриманого файлу на форму. З повагою, Миколо.
Наскільки пам'ятаю, якщо команда чогось видає на екран - хелп, параметри налаштування тощо, то НТ можна було зробити редирект для виведення, наприклад у файл
ось воно і все. А з файлу вже читай, як хочеш.
Ось приклад запису рядка
/? Цей Help /a Disable display of characters with codes 0 - 31 and 255. /ag Disable display of pseudographics characters. /e[ [:
]] Edit the specified file. /i Set small (16x16) icon for FAR console window. /p[
] Search for "common" plugins in the directory, specified
. /u Якщо ви маєте окремі налаштування для різних користувачів. /v Показати конкретний файл. If is -, data is read from the stdin. /co Forces FAR для load plugins від cache only. /x Disable exception handling.
Дуже цікавий варіант, головне робітник, добре, я зараз ще інші варіанти пробую, якщо вийдуть, напишу як ще можна цю проблему вирішити.
Подивися http://www.renderman.ru/forum/download.php/1,336,24/FoxUtils.txt Використовувати так: uses FoxUtils; var MyChild: TChildProc; MyChild := TChildProc.Create(EXEFileName, ParamStr); і потім ReadStrFromChild WriteToChild
Примітки від мене:
1) шлях до файлу треба вказувати повністю 2) рядки повертаються в DOS кодуванні, треба перекодувати
procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := GetDosOutput("c:\winnt\system32\rsh.exe"); OemToChar(PChar(s), pChar(s)); showmessage(s); end;
>Примітки від мене:
>1) шлях до файлу треба вказувати повністю >2) рядки повертаються в DOS кодуванні, треба перекодувати
>procedure TForm1.Button1Click(Sender: TObject); >var > s: string; >begin > s := GetDosOutput("c:\winnt\system32\rsh.exe"); > OemToChar(PChar(s), pChar(s)); > showmessage(s); >end;
Та це те чого я хотів досягти. Дякуємо всім за вичерпні відповіді, особливо AndrewVolkov, Ви часто дуже корисну інформацію. Усім дуже дякую.
можна, звичайно, у файл, але судячи з відповіді працюватиме тільки для NT систем.
По-друге, навіщо виводити файл, щоб знову його потім зчитувати. краще одразу зчитувати програмно.