Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> процесс-консольное приложение в фоновом режиме 
V
    Опции темы
Sasha13
Дата 14.4.2009, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.10.2007

Репутация: нет
Всего: нет



Пишу программу, в одной из частей которой создаётся файл исходных данных, затем запускаются по очереди два процесса, каждый из которых является консольной программой, написанной на фортране, и в конце считывается результат работы консольных программ. Вычисления по данному алгоритму проводятся много раз, поэтому не хочется, чтобы при работе постоянно загорались и пропадали консольные окна этих программ. Как сделать чтобы они не появлялись? 

Код

  class RaschetVzaimodeisvia
  {
    public void GetForce(string path_to_REZ, string path_to_SILA)
    {
      Process MyProc1 = Process.Start(@"STATV.EXE");
      MyProc1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
      MyProc1.WaitForExit();
      MyProc1.Close();

      Process MyProc2 = Process.Start(@"VZAIM.EXE");
      MyProc2.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
      MyProc2.WaitForExit();
      MyProc2.Close();
    }
  }


Почему строка 
Код
 MyProc1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
 не скрывает консольные окна?
Спасибо!
PM MAIL   Вверх
KelTron
Дата 14.4.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Поиск рулит, соседнюю тему посмотри http://forum.vingrad.ru/forum/topic-194067.html


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Retro
Дата 14.4.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Диалектик
***


Профиль
Группа: Участник Клуба
Сообщений: 1934
Регистрация: 28.6.2005
Где: Киев

Репутация: 3
Всего: 117



http://forum.vingrad.ru/topic-194067.html

Добавлено через 25 секунд
KelTron, не успел. smile 
PM MAIL   Вверх
DVariuS
Дата 14.4.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 2
Всего: 8



Sasha13, попробуй так:
Код

class RaschetVzaimodeisvia
  {
    public void GetForce(string path_to_REZ, string path_to_SILA)
    {
      Process MyProc1 = new Process();
      MyProc1.StartInfo.FileName = @"STATV.EXE";
      MyProc1.StartInfo.CreateNoWindow = true;
      MyProc1.StartInfo.RedirectStandardOutput = true;
      MyProc1.StartInfo.UseShellExecute = false;
      MyProc1.Start();
      MyProc1.WaitForExit();
      MyProc1.Close();

      Process MyProc2 = new Process();
      MyProc2.StartInfo.FileName = @"STATV.EXE";
      MyProc2.StartInfo.CreateNoWindow = true;
      MyProc2.StartInfo.RedirectStandardOutput = true;
      MyProc2.StartInfo.UseShellExecute = false;
      MyProc2.Start();
      MyProc2.WaitForExit();
      MyProc2.Close();
    }
  }


PM MAIL   Вверх
Sasha13
Дата 14.4.2009, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.10.2007

Репутация: нет
Всего: нет



Спасибо большое DVariuS. Твой код почти работает, окна действительно не появляются. Только на каждый запуск STATV.EXE и VZAIM.EXE выскакивает сообщение об ошибке


 user posted image 


как с этим бороться ???

Это сообщение отредактировал(а) Sasha13 - 14.4.2009, 20:55
PM MAIL   Вверх
Sasha13
Дата 14.4.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.10.2007

Репутация: нет
Всего: нет



Большое спасибо всем. И отдельное DVariuS. Ваш код правильно направил мои поиски. А сделать то о чем я говорил, как оказалось очень просто:

Код

    class RaschetVzaimodeisvia
    {
        public void GetForce(string path_to_REZ, string path_to_SILA)
        {
            Process MyProc1 = new Process();
            MyProc1.StartInfo.FileName = @"STATV.EXE";
            MyProc1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            MyProc1.Start();
            MyProc1.WaitForExit();
            MyProc1.Close();

            Process MyProc2 = new Process();
            MyProc2.StartInfo.FileName = @"VZAIM.EXE";
            MyProc2.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            MyProc2.Start();
            MyProc2.WaitForExit();
            MyProc2.Close();
        }
    }


Нужно было сделать
MyProc1.Start();
после
MyProc1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
И всего-то))))))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0844 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.