|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.01.2008, 00:50 | #1 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Консольное приложение
Такой вопрос! При запуске консольного приложения с командной строки, оно открывается в новом окне командной строки и там выполняет вывод данных. Как сделать чтобы приложение выводило сообщения в то же окно командной строки из которого запущено? или отсылала ему команды, например echo.
|
22.01.2008, 08:30 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Чет не пойму:
Я создал косольку: Код:
Прога не открыла новое окно, а написала результат туда же. Че я не так делаю? Показывай свой код.
I'm learning to live...
|
22.01.2008, 09:40 | #3 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Да код один в один такой же почти. Разобрался, проблема в bat-файле была. Писал в нём
echo starting program... start proj.exe pause Изменил на echo starting program... proj.exe pause и всё стало как надо только вот как сделать чтоб он перед выводом новой строки предыдущую очищал |
22.01.2008, 10:26 | #4 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Вот мой вариант программы...
program Timer; {$APPTYPE CONSOLE} uses windows,SysUtils; var i,t : integer; begin { TODO -oUser -cConsole Main : Insert code here } if paramcount <> 1 then //если нет параметров - ошибка и выход begin writeln('Parameters Error'); writeln; writeln('Template: timer.exe n'); writeln('n - seconds'); writeln; writeln('Press Enter To Continue...'); readln; Exit; end; t := StrToInt(paramStr(1)); //сколько секунд для отсчёта for i := t downto 1 do begin writeln(i); sleep(950); winexec('cmd.exe /c "echo off && cls"',sw_show); //видимо для cmd.exe необходимо 20мс чтобы //выполнить действие и завершиться sleep(50); end; end. Всё так, тока хочется чтобы после запуска ничего не стиралось, а просто надпись "таймер запущен" и секунды тикают... То есть фактически затирать последнюю строчку и новую поверх неё выводить... Последний раз редактировалось eks-s; 23.01.2008 в 00:53. |
22.01.2008, 11:27 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Что эт ты такое страшное креативиш, что такие пути выбрал??
I'm learning to live...
|
23.01.2008, 00:40 | #6 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Да вобще то идея проста. в бат файле копируются папки с сети на обновление и архивируются, в одном месте я хочу вставить свой timer.exe 15, чтобы в окошке с показом всех операций копирования появилась надпись waiting 15 sec... и ниже шёл отсчёт секунд, по истечение которых продолжалось дальше выполнение операций.
Пока остановился на таком решении, но не то что я хочу... t := StrToInt(paramStr(1)); //сколько секунд для отсчёта writeln('waiting '+IntToStr(t)+' sec'); for i := t downto 1 do begin sleep(1000); if i > 1 then write('. ') else writeln('.'); end; writeln('timer off'); writeln; Последний раз редактировалось eks-s; 23.01.2008 в 00:43. |
23.01.2008, 08:30 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
А чего это не сделать в оконке?
I'm learning to live...
|
24.01.2008, 02:50 | #8 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Весит больше, да и хочется консольно. А то при выводе всех команд в командной строке действие таймера выводить в окошке как то не то...
|
24.01.2008, 07:35 | #9 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Вообще, на С это делается скажем так:
Код:
Код:
Последний раз редактировалось B_N; 24.01.2008 в 07:45. |
24.01.2008, 09:53 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Ну я знаю в паскале была функа GoToXY а вот осталась ли она в делфи не помню. Кстати можно попробовать использовать соответствующее прерывание БИОСа для перемещения курсора.
I'm learning to live...
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Консольное приложение | a_priori | Общие вопросы Delphi | 6 | 12.03.2008 08:33 |
Консольное приложение и DLL | SunKnight | Общие вопросы Delphi | 1 | 16.12.2007 02:35 |
Консольное приложение | MAcK | Общие вопросы Delphi | 2 | 03.12.2006 18:28 |