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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> интеграция формы и сонсольного приложения 
:(
    Опции темы
chudak
Дата 7.4.2010, 05:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возмождно ли средствами C# синтегрировать форму и консольное щприложение???

План такой:
по клику кнопки запускается консольное приложение которое отдельно лежит на жестком диске с нужными параметрами.
приложение начинает выполняться, но мне нужно избавиться от консольного окна и чтоб проценты которые крутятся в конс. приложении должны отображаться на моей форме!!!
PM MAIL   Вверх
kosmonaFFFt
Дата 7.4.2010, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А консольное приложение на платформе .NET? Если да, то можно попробовать импортировать его в проект как библиотеку классов, и использовать нужные функции, если конечно видимость классов позволяет...


--------------------
user posted image
PM MAIL ICQ   Вверх
chudak
Дата 7.4.2010, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(kosmonaFFFt @  7.4.2010,  06:56 Найти цитируемый пост)
А консольное приложение на платформе .NET? Если да, то можно попробовать импортировать его в проект как библиотеку классов, и использовать нужные функции, если конечно видимость классов позволяет... 


нет, она написана на чистом С++

PM MAIL   Вверх
Fortnox
Дата 7.4.2010, 08:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



chudak, использовать класс Process для запуска приложения и перенаправить выходной поток
PM MAIL   Вверх
chudak
Дата 7.4.2010, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Fortnox @  7.4.2010,  08:50 Найти цитируемый пост)
использовать класс Process для запуска приложения и перенаправить выходной поток 


запускаю та я с помощью Process вот только выходой поток у меня пока никак не получается!!!

если есть пример - прошу поделиться
PM MAIL   Вверх
Fortnox
Дата 7.4.2010, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



chudak, пожалуйста.

Windows Forms Application:
Код

        delegate void SetTextCallback(string text);

        private void btnStart_Click(object sender, EventArgs e)
        {
            ProcessStartInfo procInfo = new ProcessStartInfo("Strings.exe");
            procInfo.RedirectStandardOutput = true;
            procInfo.CreateNoWindow = true;
            procInfo.UseShellExecute = false;
            Process proc = new Process();
            proc.EnableRaisingEvents = true;
            proc.OutputDataReceived += new DataReceivedEventHandler(proc_OutputDataReceived);
            proc.StartInfo = procInfo;
            proc.Start();
            proc.BeginOutputReadLine();
        }

        void SetText(string text)
        {
            txtOutput.Text += text;
        }

        void proc_OutputDataReceived(object sender, DataReceivedEventArgs e)
        {
            if (txtOutput.InvokeRequired)
            {
                SetTextCallback d = SetText;
                txtOutput.Invoke(d, e.Data);
            }
        }


C++ приложение:
Код

using namespace std;
int main()
{
    for(int i=0;i<=100;i++)
    {
        cout<<"Working%";
    }
    return 0;
}


Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  WindowsFormsApplication2.zip 49,64 Kb
PM MAIL   Вверх
chudak
Дата 7.4.2010, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



так процесс ведь запускается в отдельном потоке!!!
у меня виснет мое основное приложение до окончания выполнения консольного!!!

я пытался спомощью таймера сделать вывод строк, но с делигатом у тебя конечно идея лучше!!! smile

подскажи еще как сделать что бы процесс запущенный и проложение мое програмное работали независимо, некто никого не вешал!!!
PM MAIL   Вверх
mrbrooks
Дата 7.4.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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




Цитата(chudak @  7.4.2010,  06:54 Найти цитируемый пост)
приложение начинает выполняться, но мне нужно избавиться от консольного окна и чтоб проценты которые крутятся в конс. приложении должны отображаться на моей форме!!! 


по логике вещей нужно использовать именованные (анонимные) каналы.

Живут они в System.IO.Pipes
PM MAIL   Вверх
chudak
Дата 7.4.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mrbrooks @  7.4.2010,  10:48 Найти цитируемый пост)
по логике вещей нужно использовать именованные (анонимные) каналы.

Живут они в System.IO.Pipes 


если я правильно понимаю, то нужно внести изменения в консольное приложение, но у меня нет его исходников...
PM MAIL   Вверх
mrbrooks
Дата 7.4.2010, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(chudak @  7.4.2010,  13:04 Найти цитируемый пост)
то нужно внести изменения в консольное приложение

Нет.

Добавлено через 11 минут и 2 секунды
Хотя стоять - бояться. Сдается мне что надо будет импортировать CreatePipe со всеми потрохами, System.IO.Pipes  - годится только для управляемого кода.
PM MAIL   Вверх
Heinzz
Дата 9.4.2010, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а какая проблема process целиком в другой поток засунуть smile 


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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