 |
[C#] Таймер+процессы = wtf!?! - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
02.11.2011, 14:06
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 02.11.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
[C#] Таймер+процессы = wtf!?!
Доброго времени суток! Проблема в том, что таймер не останавливается.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
bool proc = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
System.Diagnostics.Process[] processes;
processes = Process.GetProcessesByName("launcher");
foreach (System.Diagnostics.Process instance in processes)
{
if (!proc)
{
listBox1.Items.Add(instance.ProcessName);
if (instance.ProcessName == "launcher")
{
Process.Start(@"D:\1.exe");
proc = true;
timer1.Stop();
timer1.Enabled = false;
}
timer1.Stop();
}
}
if (proc == true)
{
timer1.Stop();
}
}
}
}
Я так поняла, что это из-за того, что timer.stop написано в foreach, но если писать не в foreach, то тогда тормозится будет, не запуская процесса...Как нужно переделать код, чтобы работало?что исправить?
Заранее спасибо
|
|
|
02.11.2011, 14:49
|
#2
|
|
|
|
Разведчик
|
 Регистрация: 14.07.2011
 Сообщений: 27
 Популярность: 244
 Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: [C#] Таймер+процессы = wtf!?!
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
02.11.2011, 14:58
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 02.11.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [C#] Таймер+процессы = wtf!?!
Последний раз редактировалось Неkто_Я; 02.11.2011 в 15:01.
Причина: Добавлено сообщение
|
|
|
02.11.2011, 15:11
|
#4
|
|
|
|
Разведчик
|
 Регистрация: 14.07.2011
 Сообщений: 27
 Популярность: 244
 Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: [C#] Таймер+процессы = wtf!?!
Точно не скажу - надо студию врубать.
Во-первых таймер.Энэйбл лучше изначально установить в фолс, запускать его ф-ей Start() в конструкторе окна, как вариант,
Код:
Process[] processes = Process.GetProcessessByName("launcher");
if(processess.Length>0){
Process.Start(@"D:\1.exe");
timer1.Stop();
}
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
02.11.2011, 15:18
|
#5
|
|
|
|
Разведчик
|
 Регистрация: 02.11.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [C#] Таймер+процессы = wtf!?!
Оно ошибки выдает:
Ошибка 1 "System.Diagnostics.Process" не содержит определение для "GetProcessessByName" D:\готовая_2_часть_проги\WindowsFormsApplication5\ WindowsFormsApplication5\Form1.cs 44 43 WindowsFormsApplication5
Ошибка 2 Элемент "processess" не существует в текущем контексте. D:\готовая_2_часть_проги\WindowsFormsApplication5\ WindowsFormsApplication5\Form1.cs 45 17 WindowsFormsApplication5
|
|
|
02.11.2011, 15:20
|
#6
|
|
|
|
Разведчик
|
 Регистрация: 14.07.2011
 Сообщений: 27
 Популярность: 244
 Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: [C#] Таймер+процессы = wtf!?!
В начало добавь нэймспейс
Код:
using System.Diagnostics;
Что касается второй ошибки - у меня в коде опечатка, одну 's' лишнюю написал в имени переменной
___________________
Код:
new Thread(delegate()
{
while(true)
{
Process[] processes = Process.GetProcessesByName("launcher");
if(processes.Length>0)
{
Process.Start(@"D:\1.exe");
break;
}
}
}).Start();
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось •theSaboteur•; 02.11.2011 в 17:45.
|
|
|
02.11.2011, 15:22
|
#7
|
|
|
|
Разведчик
|
 Регистрация: 02.11.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [C#] Таймер+процессы = wtf!?!
using System.Diagnostics;
уже есть и было...все равно пишет ошибку(1)
Добавлено через 2 минуты
нашла!просто Getprocesses - тож 1 s, но все равно запускается бесконечное кол-во раз...
Последний раз редактировалось Неkто_Я; 02.11.2011 в 15:24.
Причина: Добавлено сообщение
|
|
|
02.11.2011, 18:06
|
#8
|
|
|
|
Пехотинец
|
 Регистрация: 08.07.2009
 Сообщений: 63
 Популярность: 359
 Сказал(а) спасибо: 32
Поблагодарили 84 раз(а) в 28 сообщениях
|
Re: [C#] Таймер+процессы = wtf!?!
Останавливайте таймер потом Process.Start()
Код:
public partial class Form1 : Form
{
bool proc = false;
public Form1()
{
InitializeComponent();
timer1.Interval = 1000;
timer1.Tick+=new EventHandler(timer1_Tick);
timer1.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
System.Diagnostics.Process[] processes;
processes = Process.GetProcessesByName("opera");
foreach (System.Diagnostics.Process instance in processes)
{
listBox1.Items.Add(instance.ProcessName);
timer1.Enabled = false;
Process.Start(@"D:\dmaster.exe");
}
}
}
Последний раз редактировалось AJIACTOP; 02.11.2011 в 18:15.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 20:48.
|
 |