:: Visual Foxpro, Foxpro for DOS
задержать окно DOS
Kaskad
Автор

Сообщений: 214
Откуда: Новосибирск
Дата регистрации: 24.10.2007
Господа! Простите великодушно - забыла. Забыла, как, запустив RUN, остановить окно DOS и увидеть, почему не может вызваться программа, запущенная из RUN. Может, кто помнит - подскажите!
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Если запустить при помощи RUN пакетный bat-файл, то в нем можно поставить команду PAUSE. Это приостановит выполнение bat-файла, и можно будет почитать системные сообщения в окне DOS

Также можно попробовать поставить в конце команды для запуска приложения перенаправление вывода сообщений:

RUN myprog >info.txt



Исправлено 2 раз(а). Последнее : Simple777, 27.11.17 08:17
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Kaskad
остановить окно DOS

А что за окно?
Обычно оно и так остается. Либо скажем запуская через командный интерпретатор CMD с ключом К:
/C Выполнение указанной команды (строки) с последующим завершением.
/K Выполнение указанной команды (строки) без последующего завершения.
можно по желанию видеть или не видеть, т.е.:
RUN CMD/K dosprg.exe
Также, как указано было выше - перенаправление вывода в текстовый файл выведет в него все служебные сообщения.

Kaskad
почему не может вызваться программа, запущенная из RUN

Скорее всего - из-за несовпадения пути фокспро по умолчанию и папки размещения этой дос-программы, в результате не видящей каких-то своих компонентов, даже если при запуске был указан ее полный путь.
Т.е. надо перед запуском вначале установить ее путь по SET DEFAULT TO.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: задержать окно DOS
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Т.е. надо перед запуском вначале установить ее путь по SET DEFAULT TO
После запуска надо вернуть его в старое состояние, иначе сломается основная программа (не найдет свои компоненты). Кстати в пакетном файле можно менять рабочий каталог (командой CD), что тоже ломает основную программу)
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Kaskad
Автор

Сообщений: 214
Откуда: Новосибирск
Дата регистрации: 24.10.2007
По команде RUN должен запускаться архиватор, причем с указанием явно пути, по которому он находится. Быстро промелькивает черное окно и более ничего не происходит. Думаю, в этом черном окне и указывается причина, почему не запускается архиватор. Когда этот запуск отлаживался, пользовались каким-то набором клавиш для остановки окна и вылавливания ошибки, но это было очень давно... Вывод в файл сообщений почему-то в этом случае не срабатывает.
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Судя по всему, речь идет о FPD 2.6

С архиваторами заморочки есть. Не всякий архиватор запускался из FPD.

Вот рабочая команда для arj.exe (116260 байт размер)

RUN /0 arj a myarc.arj myfile.dbf >null

Еще надо иметь в виду, что DOS-архиваторы поддерживают маршруты не для всех операндов. По крайней мере надо проверить работу архиватора (для начала), когда архив и архивируемый файл находятся в одной папке, и эта папка активна.



Исправлено 2 раз(а). Последнее : Simple777, 28.11.17 07:47
Ratings: 0 negative/0 positive
Re: задержать окно DOS
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
А что-то другое запускается? Например Notepad.exe? Архиватор DOS-овый (OC x64)?
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Еще есть полезные
ShellExecute и script.Shell (примерно)
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Kaskad
Автор

Сообщений: 214
Откуда: Новосибирск
Дата регистрации: 24.10.2007
У нас все архиваторы(WinRar, 7z, Rar) на всех машинах вызываются и работают, проблема у клиента, причем возникла неделю как. До этого они прекрасно работали с вообще древним RAR-ом, а сейчас и с последним WinRar никак. Есть подозрение, что чего-то(какой-то памяти или еще какого ресурса) не хватает, но как определить чего?
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Ну еще бывает, что антивирус чего-то там не разрешает делать.
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Kaskad
Автор

Сообщений: 214
Откуда: Новосибирск
Дата регистрации: 24.10.2007
И антивирус пробовали отключать - результат тот же,увы...
Ratings: 0 negative/0 positive
Re: задержать окно DOS
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Провел эксперимент, когда указан неверный путь к программе:
RUN xxx.exe > c:\tmp\log.txt
Мелькнуло черное окно, образовался файл c:\tmp\log.txt размером 0...
Попробуйте проверять наличие запускаемого файла:
m.f = "C:\путь\архиватор.exe" && путь к архиватору, с путем или без
IF FILE(m.f)
RUN &f
ELSE
WAIT LEFT("нет файла "+m.f, 250) WINDO
ENDIF
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
Пуск>Стандартные>CMD.exe от имени текущего пользователя. В появившемся окне дать в точности ту команду, что в Фоксе задается (без RUN, разумеется) и посмотреть результат. Продублироваться от имени Администратора. Сравнить. А там уже и копать, когда компас в руках.

P.S. Вероятнее всего, проблема в доступе к какой либо из папок из параметров командной строки: папке с архиватором, папке с исходными файлами или целевой папке для архива. Причины могут быть как в политике безопасности, так и в ошибках файловой системы. Не стоит исключать ошибку попытки совместного доступа к какому то из архивируемых файлов



Исправлено 3 раз(а). Последнее : Chemberzhy, 28.11.17 13:15
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Нет ли случаем пробела в полном пути к запускаемой программе?
Вывод в файл не срабатывает потому что и программа не найдена и не срабатывает.
А ОС не выводит сообщение в файл. (вроде)

2ТС. Ты бы полную строку выложил.



Исправлено 1 раз(а). Последнее : Taran, 28.11.17 15:13
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Kaskad
По команде RUN должен запускаться архиватор, причем с указанием явно пути, по которому он находится. Быстро промелькивает черное окно и более ничего не происходит. Думаю, в этом черном окне и указывается причина, почему не запускается архиватор. Когда этот запуск отлаживался, пользовались каким-то набором клавиш для остановки окна и вылавливания ошибки, но это было очень давно... Вывод в файл сообщений почему-то в этом случае не срабатывает.

Ну дык через дополнительный командный интерпретатор, как я уже и писал выше, все ж вроде работает.
Хоть так, с "остановкой" окна:
RUN cmd/k "c:\Program Files\WinRAR\RAR.exe"

Хоть без остановки, но с лог-файлом:
RUN cmd/c "c:\Program Files\WinRAR\RAR.exe" > c:\log.txt
[sm128]


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Kaskad
Автор

Сообщений: 214
Откуда: Новосибирск
Дата регистрации: 24.10.2007
RUN cmd/k "c:\Program Files\WinRAR\RAR.exe" - останавливается уже на этапе проверки пути, т.к. не переваривает "Program Files", в смысле пробел в нем.

Наверняка у клиентов архиватор там же. Но еще 20.11.2017 беззастенчиво работал(есть ежедневный архив, получаемый при выходе из программы). Утверждают, что на машине ничего не менялось, но работать перестало. Может, кто-то сталкивался - подскажите, плиз, что это может быть. Памяти любой, естессно, в достатке.

При перенаправлении сообщений об ошибках в файл, он создается пустым, т.к. до ошибок архиватора, похоже, просто не доходит.



Исправлено 1 раз(а). Последнее : Kaskad, 29.11.17 11:02
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Kaskad
Утверждают, что на машине ничего не менялось, но работать перестало.

"Все врут" (доктор Хаус)

Может, админ чего-то накуролесил или обновление винды привело к таким последствиям.

А что за винда на этом компе?
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Kaskad
Автор

Сообщений: 214
Откуда: Новосибирск
Дата регистрации: 24.10.2007
Simple777
Kaskad
Утверждают, что на машине ничего не менялось, но работать перестало.

"Все врут" (доктор Хаус)

Может, админ чего-то накуролесил или обновление винды привело к таким последствиям.

А что за винда на этом компе?

Win7 32
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
А из командной строки архиватор работает по приведённой выше команде?
Ratings: 0 negative/0 positive
Re: задержать окно DOS
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Kaskad
RUN cmd/k "c:\Program Files\WinRAR\RAR.exe" - останавливается уже на этапе проверки пути, т.к. не переваривает "Program Files", в смысле пробел в нем.

Чего же себя так не любить и других не уважать?
Ну где в приведенной строке проверка пути?
Насколько понимаю путь к исполняемому файлу передается как параметр.
Соотв. строка формируется и выполняется.
Вы бы привели кусок кода, формирующий строку и прочие проверки.
А то гадать о системе и в час по чайной ложке и пр... ну плохо это.




Исправлено 1 раз(а). Последнее : Taran, 29.11.17 13:37
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 24 (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика