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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Убить процесс 
V
    Опции темы
Miller_time
Дата 30.3.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Народ как убить процесс так сказать не дать приложению запустится. Тоесть иммем адрес приложения и имя процесс но как не дать ему работать ? 
Пробовал Process.Kill  но он не чего не убивает .

Подскажите как .




--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Ch0bits
Дата 30.3.2007, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

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



Т.е. нужно не дать приложению запуститься вообще? Проще всего заблокировать исполняемый файл приложения (открыть с монопольным доступом).

Добавлено через 5 минут и 25 секунд
Пример:
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string exeName = @"c:\mplayerc.exe";
            using (File.Open(exeName, FileMode.Open, FileAccess.Read, FileShare.None))
            {
                Console.WriteLine("Чтобы разблокировать программу " + exeName + ", нажмите любую клавишу...");
                Console.ReadKey();
            }
        }
    }
}

PM WWW   Вверх
Сарт
Дата 1.4.2007, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нашел в загашниках
Код

using  System.Diagnostics;


try
{
  // убить все процессы с заданным именем:
  foreach (Process thisproc in Process.GetProcessesByName(processName)) {
    // если просто закрыть нельзя, то убить!
    if(!thisproc.CloseMainWindow())
    {
      thisproc.Kill();
    }
  }
}
catch(Exception ex)
{
  MessageBox.Show(ex.ToString());
}

--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
Miller_time
Дата 2.4.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо.


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Dennus
Дата 4.9.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В моём случаи не получается. Мне необходимо убить Excel который работает в фоне. Ни Process.Close(), ни Process.Kill() не работают (нет ни Исключений, ни результата). Почему?
PM MAIL   Вверх
moric83
Дата 4.9.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это от того что ты не правильно работаеш с Excel  - надо удалять все СОМ обьекты которые используеш (Marshal.ReleaseComObject)

Ну для примера у меня работал этот код:

Код

int priorSum = 0, newSum = 0, XLprocid = 0;
foreach (System.Diagnostics.Process pr in System.Diagnostics.Process.GetProcessesByName("excel"))
{
priorSum += pr.Id;
}
app = new Excel.Application();

foreach (System.Diagnostics.Process pr in System.Diagnostics.Process.GetProcessesByName("excel"))
{
newSum += pr.Id;
}
XLprocid = newSum - priorSum;


// и чтобы убить процесс 
Process pr1 = System.Diagnostics.Process.GetProcessById(XLprocid);
if (!pr1.HasExited)    pr1.Kill();


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

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


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

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


 




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


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

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