|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - как контролировать ход выполнения запущенного процесса |
|
.NET - как контролировать ход выполнения запущенного процесса
|
Старожил Сообщения: 301 |
Профиль | Отправить PM | Цитировать Всем доброго времени суток... smile
среда:Visual Studio 2010 Cитуация следующая: Суть программы - производить архивирование и по хитрой своей логике раскладывать, рассылать эти в архивы, в зависимости от тех или иных условий, при этом совсем не исключено, что данные которые необходимо будет заархивировать в этот момент будут использоваться, в связи с чем (реакция на ошибку запущенного процесса) программе необходимо будет перейти к следующему архивированию, но в последствии попробовать еще несколько раз, в случае провала - запись в лог и.т. д Для решения данной задачи... мне совсем не надо "кнопочной мишуры", потому - консольное приложение... И всё вроде неплохо пока дело не доходит как раз до исключения, когда файлы уже используются суть: Я не делаю перенаправление ввода/вывода от запускаемых процессов 7zip... в главном окне консоли формируется отчет. Запущенные процессы открываются отдельными консолями, при этом моя программа приспокойненько двигает дальше (а я бы хотел, чтобы основная программа дождалась реакции запущенного ей процесса, как это сделать?) для запуска процессов я использую конструкцию: Dim zip7 As New Process '7zip описан в ситст.PATH zip7.StartInfo.FileName = "7z" zip7.StartInfo.Arguments = "a -tzip " & "сформированное имя архива" & " " & "архивируемый каталог" zip7.Start() хотелось бы знать, я могу вобще этими окнами управлять? т.е. приостановить используя Console.Readkey и.т. д? как отслеживать ход выполнения. процесса, получить от него сообщение об ошибке или наоборот об успешном завершении... ? поигавшись... zip7.StartInfo.UseShellExecute = False zip7.StartInfo.RedirectStandardInput = True zip7.StartInfo.RedirectStandardOutput = False неизвестно успешно или нет... вобщем как-то так... Перелопатил гору разнообразных учебников... но там все о синтаксисе, да о функциях в основном... А хотелось бы описания способов управления процессами, данными, вообще системой... может подскажет кто литературу. |
|
------- Отправлено: 09:27, 31-08-2010 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Надо смотреть функции Process. Вот пример вывода результата в текущее окно:
http://www.java2s.com/Code/CSharp/De...cessOutput.htm http://msdn.microsoft.com/en-us/libr...ardoutput.aspx Пошуршите по поиску по такому критерию: http://www.google.ru/search?hl=ru&q=...%B2+Google&lr= |
------- Отправлено: 09:40, 31-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 301
|
Профиль | Отправить PM | Цитировать как вообще юзать запущенные процессы... есть например у Process такое свойство:
Process.StandardError 'Получает поток, используемый для чтения вывода ошибок приложения Есть у Process такой метод: Process.StartInfo.RedirectStandardError 'Возвращает или задает значение, позволяющее определить, записываются ли выходные данные об ошибках в поток Process ..::.StandardError вот как мне этот Process.StandardError запихнуть например в StremReader... да и вообще где можно уму разуму набраться по потокам, где их, как ловить и т.д. СУТЬ: Объявляем объект - процесс Объявляем объект - стрим-ридер Об являем объект - поток (поток ошибок процесс) Присваиваем процесс аргументы Запускаем процесс приостанавливаем ход до окончания процесс получаем в стрим-редер - поток обрабатываем их ... и от этого пляшем. |
------- Отправлено: 11:52, 31-08-2010 | #3 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать RUVATA, в этом случаи рациональнее смотреть в сторону LZMA SDK и получать ответ об успешности операций компрессии непосредственно от соответственных функций.
|
Отправлено: 14:00, 31-08-2010 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Проверка запущенного процесса | Anarasius | AutoIt | 2 | 25-06-2014 11:39 | |
CMD/BAT - [решено] Ход выполнения!!! | Дит | Скриптовые языки администрирования Windows | 19 | 18-06-2010 06:22 | |
.NET - Получение PID процесса, запущенного из программы | Delirium | Программирование и базы данных | 2 | 07-12-2009 02:17 | |
Java - Отслеживание состояния запущенного процесса | EvgeniyQQQ | Программирование и базы данных | 15 | 02-10-2007 13:20 | |
А можно для уже запущенного процесса сменить user-a ? | ukms | Программирование и базы данных | 6 | 23-10-2002 13:51 |
|