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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать Cи функцию system() в C# ? вызвать фунцию system() 
:(
    Опции темы
stan777
Дата 21.2.2007, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо ! smile.  за полезный оффтопик ! 
Просто у меня вот такая штука:
Код

        public void button1_Click(object sender, System.EventArgs e)
        {
        
            
            Thread t = new Thread(new ThreadStart(ThreadProc));
            t.Start();
            label1.Text="работает";
            while (!t.IsAlive); // (***)
            
            t.Join();
            label1.Text="поиск завершен";
        }
        public void ThreadProc() 
        {
            string url = textBox1.Text;
            string args ="script"+" "+url;

            ProcessStartInfo info = new ProcessStartInfo("perl", args);
            info.WindowStyle = ProcessWindowStyle.Hidden;
            Process getlink = new Process();
            getlink.StartInfo = info;
            getlink.Start();                    
        }

Поэтому я такой вопрос и задал. А вот здесь (***) я думал типа пока работает запущенный процесс лэйбл писал типа процесс работает. Только while (!t.IsAlive);  его не ловит и сразу пишет поиск завершен.

Это сообщение отредактировал(а) stan777 - 21.2.2007, 17:00
PM MAIL   Вверх
stan777
Дата 21.2.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Yama @ 21.2.2007,  15:49)
Цитата(Yama @  21.2.2007,  14:34 Найти цитируемый пост)
string myString = myStreamReader.ReadToEnd();// ReadLine() changed to ReadToEnd();

измени вот так. Выдаст результат.
у тебя так и открывается окно консоли при старте myProcess?

[code=nocolor]
Да поменял начал выдавать, вот только теперь в старнной кодировке smile

Код

richTextBox1 ЋЎ¬Ґ­ Ї ЄҐв ¬Ё б 127.0.0.1 Ї® 32 Ў ©в:  ЋвўҐв ®в 127.0.0.1: зЁб«® Ў ©в=32 ўаҐ¬п<1¬б TTL=128 ЋвўҐв ®в 127.0.0.1: зЁб«® Ў ©в=32 ўаҐ¬п<1¬б TTL=128 ЋвўҐв ®в 127.0.0.1: зЁб«® Ў ©в=32 ўаҐ¬п<1¬б TTL=128 ЋвўҐв ®в 127.0.0.1: зЁб«® Ў ©в=32 ўаҐ¬п<1¬б TTL=128  ‘в вЁбвЁЄ  Ping ¤«п 127.0.0.1:     Џ ЄҐв®ў: ®вЇа ў«Ґ­® = 4, Ї®«г祭® = 4, Ї®вҐап­® = 0 (0% Ї®вҐам), ЏаЁЎ«Ё§ЁвҐ«м­®Ґ ўаҐ¬п ЇаЁҐ¬ -ЇҐаҐ¤ зЁ ў ¬б:     ЊЁ­Ё¬ «м­®Ґ = 0¬бҐЄ, Њ ЄбЁ¬ «м­®Ґ = 0 ¬бҐЄ, ‘।­ҐҐ = 0 ¬бҐЄ 

Кодировка тоже оффтопик, спасибо за помощь !!! Все остальное отлично работает ! даже richtextbox ! 

Это сообщение отредактировал(а) stan777 - 21.2.2007, 17:53
PM MAIL   Вверх
Yama
Дата 21.2.2007, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



аккуратно обходя оффтоп......
сделай так:
Код

public class startPing{
        public delegate void ThreadFinishedDelegate();
        public event ThreadFinishedDelegate ThreadFinished;

        public void ThreadProc() 
        {
       Thread     tThread = new Thread(delegate() {
             string url = textBox1.Text;
            string args ="script"+" "+url;

            ProcessStartInfo info = new ProcessStartInfo("perl", args);
            info.WindowStyle = ProcessWindowStyle.Hidden;
            Process getlink = new Process();
            getlink.StartInfo = info;
            getlink.Start(); 
//если событие вылетит до завершения работы ping, поставь тут getlink.WaitForExit();
            ThreadFinished();
                });
            tThread.Start();
        }

}


....................

private void button1_Click(object sender, EventArgs e)
{
startPing ping=new startPing();
ping.ThreadProc();
ping+=new startPing.ThreadFinishedDelegate(t_ThreadFinished);
}

        void t_ThreadFinished()
        {
            Object[] o=new Object[1];
            if (this.InvokeRequired)
            {
                this.Invoke(new thread.ThreadFinishedDelegate(this.t_ThreadFinished));
            }
            else
            {
                label1.Text="поиск завершен";      
      }

        }

Событие должно сработать, когда ping завершит работу. Код писался тут же, я его не проверял - сорь, времени нет. Ошибок быть не должно, но малоли.... smile

Добавлено @ 17:59 
Ну если уж такое дело... по вопросу кодировки: тыць!

Модератор! Плз, топ клоуз.

З.Ы. а то мы тут уже во флуд подадимся скоро...  smile 

Это сообщение отредактировал(а) Yama - 21.2.2007, 17:56
--------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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