C# — С# Убить процесс


Взаимодействие с процессами в .NET

C# — Сборки .NET — Взаимодействие с процессами в .NET

Хотя в самих процессах и потоках нет ничего нового, способ, которым с ними можно взаимодействовать в рамках платформы .NET, довольно прилично изменился (в лучшую сторону). Чтобы проложить себе путь к пониманию приемов построения многопоточных сборок, начнем с того, что посмотрим, каким образом можно взаимодействовать с процессами за счет применения библиотек базовых классов .NET.

В пространстве имен System.Diagnostics поставляется набор типов, которые позволяют программно взаимодействовать с процессами и различными связанными с диагностикой средствами вроде системного журнала событий и счетчиков производительности. Нас интересуют только те типы, которые позволяют взаимодействовать с процессами. Некоторые наиболее важные из них перечислены ниже:

Process

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

ProcessModule

Представляет модуль (*.dll или *.ехе), который должен загружаться в определенный процесс. Важно понимать, что этот тип может применяться для представления любого модуля — COM, .NET или традиционного двоичного на базе С

ProcessModuleCollection

Позволяет создавать строго типизированную коллекцию объектов ProcessModule

ProcessStartInfо

Позволяет указывать набор значений, которые должны использоваться при запуске процесса посредством метода Process.Start()

ProcessThread

Представляет поток внутри определенного процесса. Следует иметь в виду, что этот тип применяется для диагностики набора потоков в процессе, но не для ответвления внутри него новых потоков

ProcessThreadCollection

Позволяет создавать строго типизованную коллекцию объектов ProcessThread

C# — С# Убить процесс

Hi — I think my information can help.

I hope this information was helpful.

Have a nice day.

Best regards,
Fisnik Coder24.com

  • Proposed as answer by YiChun Chen Monday, July 13, 2009 2:18 AM
  • Marked as answer by Harry Zhu Wednesday, July 15, 2009 9:38 AM
  • Unmarked as answer by Reed Copsey, Jr MVP, Moderator Thursday, December 13, 2012 1:45 AM

An extra point for Prasant Swain.

With the first solutions, I got the error:

Error 1 The type or namespace name ‘Process’ could not be found (are you missing a using directive or an assembly reference?

Process. Kill Метод

Определение

Перегрузки

Немедленно останавливает связанный процесс. Immediately stops the associated process.

Немедленно останавливает связанный процесс и, при необходимости, его дочерние процессы. Immediately stops the associated process, and optionally its child/descendent processes.

Комментарии

Метод Kill вызывает принудительное завершение процесса, в то время как CloseMainWindow запрашивает только завершение. The Kill method forces a termination of the process, while CloseMainWindow only requests a termination. При выполнении процесса с графическим интерфейсом его цикл обработки сообщений находится в состоянии ожидания. When a process with a graphical interface is executing, its message loop is in a wait state. Цикл обработки сообщений выполняется каждый раз, когда операционная система отправляет сообщение Windows в процесс. The message loop executes every time a Windows message is sent to the process by the operating system. Вызов CloseMainWindow отправляет запрос на закрытие главного окна, которое в правильно сформированном приложении закрывает дочерние окна и отменяет все выполняющиеся циклы сообщений для приложения. Calling CloseMainWindow sends a request to close the main window, which, in a well-formed application, closes child windows and revokes all running message loops for the application. Запрос на выход из процесса путем вызова CloseMainWindow не заставляет приложение завершить работу. The request to exit the process by calling CloseMainWindow does not force the application to quit. Приложение может запросить проверку пользователя перед выходом или отказаться от его завершения. The application can ask for user verification before quitting, or it can refuse to quit. Чтобы принудительно завершить работу приложения, используйте метод Kill . To force the application to quit, use the Kill method.

Поведение CloseMainWindow аналогично тому, как пользователь закрывает главное окно приложения с помощью системного меню. The behavior of CloseMainWindow is identical to that of a user closing an application’s main window using the system menu. Таким образом, запрос на завершение процесса путем закрытия главного окна не заставляет приложение немедленно завершить работу. Therefore, the request to exit the process by closing the main window does not force the application to quit immediately.

Метод Kill выполняется асинхронно. The Kill method executes asynchronously. После вызова метода Kill вызовите метод WaitForExit, чтобы дождаться завершения процесса, или проверьте свойство HasExited, чтобы определить, завершился ли процесс. After calling the Kill method, call the WaitForExit method to wait for the process to exit, or check the HasExited property to determine if the process has exited.

Метод WaitForExit и свойство HasExited не отражает состояние процессов-потомков. The WaitForExit method and the HasExited property do not reflect the status of descendant processes. При использовании Kill(entireProcessTree: true) WaitForExit и HasExited указывают, что выход завершен после завершения данного процесса, даже если все потомки еще не завершили работу. When Kill(entireProcessTree: true) is used, WaitForExit and HasExited will indicate that exiting has completed after the given process exits, even if all descendants have not yet exited.

Данные, измененные процессом или ресурсами, выделенными для процесса, могут быть потеряны при вызове Kill . Data edited by the process or resources allocated to the process can be lost if you call Kill . Kill вызывает аварийное завершение процесса и должно использоваться только при необходимости. Kill causes an abnormal process termination and should be used only when necessary. CloseMainWindow обеспечивает упорядоченное завершение процесса и закрывает все окна, поэтому оно является предпочтительным для приложений с интерфейсом. CloseMainWindow enables an orderly termination of the process and closes all windows, so it is preferable for applications with an interface. В случае сбоя CloseMainWindow можно использовать Kill для завершения процесса. If CloseMainWindow fails, you can use Kill to terminate the process. Kill является единственным способом завершения процессов, не имеющих графических интерфейсов. Kill is the only way to terminate processes that do not have graphical interfaces.

Можно вызвать Kill и CloseMainWindow только для процессов, запущенных на локальном компьютере. You can call Kill and CloseMainWindow only for processes that are running on the local computer. Нельзя вызвать завершение процессов на удаленных компьютерах. You cannot cause processes on remote computers to exit. Можно просматривать только сведения о процессах, запущенных на удаленных компьютерах. You can only view information for processes running on remote computers.

Если вызов метода Kill выполняется в то время, пока процесс завершается, для доступа будет выдано Win32Exception. If the call to the Kill method is made while the process is currently terminating, a Win32Exception is thrown for Access Denied.

Немедленно останавливает связанный процесс. Immediately stops the associated process.

Исключения

Связанный процесс не может быть завершен. The associated process could not be terminated.

Выполняется завершение процесса. The process is terminating.

Вы пытаетесь вызвать метод Kill() для процесса, выполняющегося на удаленном компьютере. You are attempting to call Kill() for a process that is running on a remote computer. Этот метод доступен только для процессов, запущенных на локальном компьютере. The method is available only for processes running on the local computer.

Этот процесс уже завершился. The process has already exited.

— или — -or- С этим объектом Process никакие процессы не связаны. There is no process associated with this Process object.

Безопасность


LinkDemand
Полный уровень доверия для непосредственного вызывающего. for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом. This member cannot be used by partially trusted code.

Дополнительно

Kill(Boolean)

Немедленно останавливает связанный процесс и, при необходимости, его дочерние процессы. Immediately stops the associated process, and optionally its child/descendent processes.

Параметры

true для уничтожения связанного процесса и его потомков; false для уничтожения только связанного процесса. true to kill the associated process and its descendants; false to kill only the associated process.

Исключения

Связанный процесс не может быть завершен. The associated process could not be terminated.

Выполняется завершение процесса. The process is terminating.

Вы пытаетесь вызвать метод Kill() для процесса, выполняющегося на удаленном компьютере. You are attempting to call Kill() for a process that is running on a remote computer. Этот метод доступен только для процессов, запущенных на локальном компьютере. The method is available only for processes running on the local computer.

Этот процесс уже завершился. The process has already exited.

— или — -or- С этим объектом Process не связаны никакие процессы. There is no process associated with this Process object.

Вызывающий процесс является членом дерева потомков связанного процесса. The calling process is a member of the associated process’ descendant tree.

Не все процессы в дереве потомков связанного процесса могут быть завершены. Not all processes in the associated process’ descendant tree could be terminated.

Комментарии

Если entireProcessTree имеет значение true , процессы, в которых у вызова отсутствуют разрешения на просмотр сведений, автоматически пропускаются в процессе завершения потомков, поскольку процессу завершения не удается определить, являются ли эти процессы потомками. When entireProcessTree is set to true , processes where the call lacks permissions to view details are silently skipped by the descendant termination process because the termination process is unable to determine whether those processes are descendants.

Безопасность

LinkDemand
Полный уровень доверия для непосредственного вызывающего. for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом. This member cannot be used by partially trusted code.

Как завершить процесс или программу через заданный интервал времени на C#

Приветствую всех сегодня я покажу как можно убивать процессы через определенное время. У многих новичков, да и любителей писать разные читы, программы шутки, возникает такой вопрос, а как все это реализовать? Есть множество способов, к примеру бесконечный цикл с помощью while(true) происходит проверка условий запущен ли процесс — программа, и если да то завершить. Однако есть еще и другие способы к через события, что то же очень интересно. Но сегодня я покажу несколько из них , который вы вряд ли встречали, такую реализацию:

C# — С# Убить процесс

Класс Process для получения информации о текущем процессе, а также позволяет управлять уже запущенными процессами, а также запускать новые процессы.

При запуске приложения операционная система создает для приложения новый процесс .
Процессу выделяется адресное пространство в памяти и процесс изолирован от других процессов.

Процесс содержит главный поток . Мы можем создавать свои потоки .


В приложении на C# точкой входа в программу является метод Main. Вызов этого метода автоматически создает главный поток . А из главного потока мы можем создавать и запускать свои потоки .

// открываем интернет страницу
Process.Start( «http://yandex.ru» );

// открываем текстовый файл
Process.Start( «D://my.txt» );

// запускаем Notepad
Process.Start( «C://Program Files (x86)//Notepad++//notepad++.exe» );

// запускаем Notepad с выбранным файлом
Process.Start( «C://Program Files (x86)//Notepad++//notepad++.exe» , «D://contract.txt»);

// открываем интернет страницу через браузер
rocessStartInfo procInfo = new ProcessStartInfo();
procInfo.FileName = «C://Program Files (x86)//Google//Chrome//Application//chrome.exe» ;
procInfo.Arguments = «http://yandex.ru» ;
Process.Start(procInfo);

Process это класс для получения информации о текущем процессе, а также позволяет управлять уже запущенными процессами, а также запускать новые процессы.

Синтаксис
public > Process : Component

Exceptions:
The base priority, which is computed from the System.Diagnostics.Process.PriorityClass
of the associated process.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me); set
the System.Diagnostics.ProcessStartInfo.UseShellExecute property to false
to access this property on Windows 98 and Windows Me.
System.InvalidOperationException:
The process has exited.-or- The process has not started, so there is no process
ID.

Exceptions:
The code that the associated process specified when it terminated.

Exceptions:
System.InvalidOperationException:
The process has not exited.-or- The process System.Diagnostics.Process.Handle
is not valid.
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.ExitCode property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.

Exceptions:
A System.DateTime that indicates when the associated process was terminated.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.ExitTime property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.

Exceptions:
The number of operating system handles the process has opened.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me); set
the System.Diagnostics.ProcessStartInfo.UseShellExecute property to false
to access this property on Windows 98 and Windows Me.

Exceptions:
true if the operating system process referenced by the System.Diagnostics.Process
component has terminated; otherwise, false.

Exceptions:
System.InvalidOperationException:
There is no process associated with the object.
System.ComponentModel.Win32Exception:
The exit code for the process could not be retrieved.
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.HasExited property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.

Exceptions:
The System.Diagnostics.ProcessModule that was used to start the process.

Exceptions:
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.MainModule property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.
System.ComponentModel.Win32Exception:
A 32-bit process is trying to access the modules of a 64-bit process.
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me); set
System.Diagnostics.ProcessStartInfo.UseShellExecute to false to access this
property on Windows 98 and Windows Me.
System.InvalidOperationException:
The process System.Diagnostics.Process.Id is not available.-or- The process
has exited.

Exceptions:
The system-generated window handle of the main window of the associated process.

Exceptions:
System.InvalidOperationException:
The System.Diagnostics.Process.MainWindowHandle is not defined because the
process has exited.
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.MainWindowHandle
property for a process that is running on a remote computer. This property
is available only for processes that are running on the local computer.
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me); set
System.Diagnostics.ProcessStartInfo.UseShellExecute to false to access this
property on Windows 98 and Windows Me.

Exceptions:
The main window title of the process.

Exceptions:
System.InvalidOperationException:
The System.Diagnostics.Process.MainWindowTitle property is not defined because
the process has exited.
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.MainWindowTitle property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me); set
System.Diagnostics.ProcessStartInfo.UseShellExecute to false to access this
property on Windows 98 and Windows Me.

Exceptions:
The maximum working set size that is allowed in memory for the process, in
bytes.


Exceptions:
System.ArgumentException:
The maximum working set size is invalid. It must be greater than or equal
to the minimum working set size.
System.ComponentModel.Win32Exception:
Working set information cannot be retrieved from the associated process resource.-or-
The process identifier or process handle is zero because the process has
not been started.
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.MaxWorkingSet property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.
System.InvalidOperationException:
The process System.Diagnostics.Process.Id is not available.-or- The process
has exited.
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The minimum working set size that is required in memory for the process,
in bytes.

Exceptions:
System.ArgumentException:
The minimum working set size is invalid. It must be less than or equal to
the maximum working set size.
System.ComponentModel.Win32Exception:
Working set information cannot be retrieved from the associated process resource.-or-
The process identifier or process handle is zero because the process has
not been started.
System.NotSupportedException:
You are trying to access the System.Diagnostics.Process.MinWorkingSet property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.
System.InvalidOperationException:
The process System.Diagnostics.Process.Id is not available.-or- The process
has exited.
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of memory, in bytes, the system has allocated for the associated
process that cannot be written to the virtual memory paging file.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of system memory, in bytes, allocated for the associated process
that cannot be written to the virtual memory paging file.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of memory, in bytes, allocated by the associated process that
can be written to the virtual memory paging file.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of memory, in bytes, allocated in the virtual memory paging file
for the associated process.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of memory, in bytes, the system has allocated for the associated
process that can be written to the virtual memory paging file.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of system memory, in bytes, allocated for the associated process
that can be written to the virtual memory paging file.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The maximum amount of memory, in bytes, allocated by the associated process
that could be written to the virtual memory paging file.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The maximum amount of memory, in bytes, allocated in the virtual memory paging
file for the associated process since it was started.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The maximum amount of virtual memory, in bytes, that the associated process
has requested.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The maximum amount of virtual memory, in bytes, allocated for the associated
process since it was started.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The maximum amount of physical memory that the associated process has required
all at once, in bytes.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.


Exceptions:
The maximum amount of physical memory, in bytes, allocated for the associated
process since it was started.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
true if dynamic boosting of the process priority should take place for a
process when it is taken out of the wait state; otherwise, false. The default
is false.

Exceptions:
System.ComponentModel.Win32Exception:
Priority boost information could not be retrieved from the associated process
resource.
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.-or- The process identifier or process handle
is zero. (The process has not been started.)
System.NotSupportedException:
You are attempting to access the System.Diagnostics.Process.PriorityBoostEnabled
property for a process that is running on a remote computer. This property
is available only for processes that are running on the local computer.
System.InvalidOperationException:
The process System.Diagnostics.Process.Id is not available.

Exceptions:
The priority category for the associated process, from which the System.Diagnostics.Process.BasePriority
of the process is calculated.

Exceptions:
System.ComponentModel.Win32Exception:
Process priority information could not be set or retrieved from the associated
process resource.-or- The process identifier or process handle is zero. (The
process has not been started.)
System.NotSupportedException:
You are attempting to access the System.Diagnostics.Process.PriorityClass
property for a process that is running on a remote computer. This property
is available only for processes that are running on the local computer.
System.InvalidOperationException:
The process System.Diagnostics.Process.Id is not available.
System.PlatformNotSupportedException:
You have set the System.Diagnostics.Process.PriorityClass to AboveNormal
or BelowNormal when using Windows 98 or Windows Millennium Edition (Windows
Me). These platforms do not support those values for the priority class.
System.ComponentModel.InvalidEnumArgumentException:
Priority class cannot be set because it does not use a valid value, as defined
in the System.Diagnostics.ProcessPriorityClass enumeration.

Exceptions:
The number of bytes allocated by the associated process that cannot be shared
with other processes.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of memory, in bytes, allocated for the associated process that
cannot be shared with other processes.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
A System.TimeSpan that indicates the amount of time that the process has
spent running code inside the operating system core.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.
System.NotSupportedException:
You are attempting to access the System.Diagnostics.Process.PrivilegedProcessorTime
property for a process that is running on a remote computer. This property
is available only for processes that are running on the local computer.

Exceptions:
A bitmask representing the processors that the threads in the associated
process can run on. The default depends on the number of processors on the
computer. The default value is 2 n -1, where n is the number of processors.

Exceptions:
System.ComponentModel.Win32Exception:
System.Diagnostics.Process.ProcessorAffinity information could not be set
or retrieved from the associated process resource.-or- The process identifier
or process handle is zero. (The process has not been started.)
System.NotSupportedException:
You are attempting to access the System.Diagnostics.Process.ProcessorAffinity
property for a process that is running on a remote computer. This property
is available only for processes that are running on the local computer.
System.InvalidOperationException:
The process System.Diagnostics.Process.Id was not available.-or- The process
has exited.

Exceptions:
true if the user interface of the associated process is responding to the
system; otherwise, false.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me); set
System.Diagnostics.ProcessStartInfo.UseShellExecute to false to access this
property on Windows 98 and Windows Me.
System.InvalidOperationException:
There is no process associated with this System.Diagnostics.Process object.
System.NotSupportedException:
You are attempting to access the System.Diagnostics.Process.Responding property
for a process that is running on a remote computer. This property is available
only for processes that are running on the local computer.

Exceptions:
The Terminal Services session identifier for the associated process.

Exceptions:
System.NullReferenceException:
There is no session associated with this process.
System.InvalidOperationException:
There is no process associated with this session identifier.-or-The associated
process is not on this machine.
System.PlatformNotSupportedException:
The System.Diagnostics.Process.SessionId property is not supported on Windows 98.

Exceptions:
A System.IO.StreamReader that can be used to read the standard error stream
of the application.

Exceptions:
System.InvalidOperationException:
The System.Diagnostics.Process.StandardError stream has not been defined
for redirection; ensure System.Diagnostics.ProcessStartInfo.RedirectStandardError
is set to true and System.Diagnostics.ProcessStartInfo.UseShellExecute is
set to false.- or — The System.Diagnostics.Process.StandardError stream has
been opened for asynchronous read operations with System.Diagnostics.Process.BeginErrorReadLine().

Exceptions:
A System.IO.StreamWriter that can be used to write the standard input stream
of the application.

Exceptions:
System.InvalidOperationException:
The System.Diagnostics.Process.StandardInput stream has not been defined
because System.Diagnostics.ProcessStartInfo.RedirectStandardInput is set
to false.

Exceptions:
A System.IO.StreamReader that can be used to read the standard output stream
of the application.

Exceptions:
System.InvalidOperationException:
The System.Diagnostics.Process.StandardOutput stream has not been defined
for redirection; ensure System.Diagnostics.ProcessStartInfo.RedirectStandardOutput
is set to true and System.Diagnostics.ProcessStartInfo.UseShellExecute is
set to false.- or — The System.Diagnostics.Process.StandardOutput stream
has been opened for asynchronous read operations with System.Diagnostics.Process.BeginOutputReadLine().


Exceptions:
The System.Diagnostics.ProcessStartInfo that represents the data with which
to start the process. These arguments include the name of the executable
file or document used to start the process.

Exceptions:
System.ArgumentNullException:
The value that specifies the System.Diagnostics.Process.StartInfo is null.

Exceptions:
A System.TimeSpan that indicates the amount of time that the associated process
has spent utilizing the CPU. This value is the sum of the System.Diagnostics.Process.UserProcessorTime
and the System.Diagnostics.Process.PrivilegedProcessorTime.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.
System.NotSupportedException:
You are attempting to access the System.Diagnostics.Process.TotalProcessorTime
property for a process that is running on a remote computer. This property
is available only for processes that are running on the local computer.

Exceptions:
A System.TimeSpan that indicates the amount of time that the associated process
has spent running code inside the application portion of the process (not
inside the operating system core).

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.
System.NotSupportedException:
You are attempting to access the System.Diagnostics.Process.UserProcessorTime
property for a process that is running on a remote computer. This property
is available only for processes that are running on the local computer.

Exceptions:
The total amount of physical memory the associated process is using, in bytes.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Exceptions:
The amount of physical memory, in bytes, allocated for the associated process.

Exceptions:
System.PlatformNotSupportedException:
The platform is Windows 98 or Windows Millennium Edition (Windows Me), which
does not support this property.

Parameters:
processId:
The system-unique identifier of a process resource.

Exceptions:
A System.Diagnostics.Process component that is associated with the local
process resource identified by the processId parameter.

Exceptions:
System.ArgumentException:
The process specified by the processId parameter is not running. The identifier
might be expired.
System.InvalidOperationException:
The process was not started by this object.

Parameters:
processId:
The system-unique identifier of a process resource.
machineName:
The name of a computer on the network.

Exceptions:
A System.Diagnostics.Process component that is associated with a remote process
resource identified by the processId parameter.

Exceptions:
System.ArgumentException:
The process specified by the processId parameter is not running. The identifier
might be expired.-or- The machineName parameter syntax is invalid. The name
might have length zero (0).
System.ArgumentNullException:
The machineName parameter is null.
System.InvalidOperationException:
The process was not started by this object.

Parameters:
machineName:
The computer from which to read the list of processes.

Exceptions:
An array of type System.Diagnostics.Process that represents all the process
resources running on the specified computer.

Exceptions:
System.ArgumentException:
The machineName parameter syntax is invalid. It might have length zero (0).
System.ArgumentNullException:
The machineName parameter is null.
System.PlatformNotSupportedException:
The operating system platform does not support this operation on remote computers.
System.InvalidOperationException:
There are problems accessing the performance counter API’s used to get process
information. This exception is specific to Windows NT, Windows 2000, and
Windows XP.
System.ComponentModel.Win32Exception:
A problem occurred accessing an underlying system API.

Parameters:
processName:
The friendly name of the process.
machineName:
The name of a computer on the network.

Exceptions:
An array of type System.Diagnostics.Process that represents the process resources
running the specified application or file.

Exceptions:
System.ArgumentException:
The machineName parameter syntax is invalid. It might have length zero (0).
System.ArgumentNullException:
The machineName parameter is null.
System.PlatformNotSupportedException:
The operating system platform does not support this operation on remote computers.
System.InvalidOperationException:
There are problems accessing the performance counter API’s used to get process
information. This exception is specific to Windows NT, Windows 2000, and
Windows XP.
System.ComponentModel.Win32Exception:
A problem occurred accessing an underlying system API.

Parameters:
startInfo:
The System.Diagnostics.ProcessStartInfo that contains the information that
is used to start the process, including the file name and any command-line
arguments.

Exceptions:
A new System.Diagnostics.Process that is associated with the process resource,
or null if no process resource is started. Note that a new process that’s
started alongside already running instances of the same process will be independent
from the others. In addition, Start may return a non-null Process with its
System.Diagnostics.Process.HasExited property already set to true. In this
case, the started process may have activated an existing instance of itself
and then exited.

Exceptions:
System.InvalidOperationException:
No file name was specified in the startInfo parameter’s System.Diagnostics.ProcessStartInfo.FileName
property.-or- The System.Diagnostics.ProcessStartInfo.UseShellExecute property
of the startInfo parameter is true and the System.Diagnostics.ProcessStartInfo.RedirectStandardInput,
System.Diagnostics.ProcessStartInfo.RedirectStandardOutput, or System.Diagnostics.ProcessStartInfo.RedirectStandardError
property is also true.-or-The System.Diagnostics.ProcessStartInfo.UseShellExecute
property of the startInfo parameter is true and the System.Diagnostics.ProcessStartInfo.UserName
property is not null or empty or the System.Diagnostics.ProcessStartInfo.Password
property is not null.
System.ArgumentNullException:
The startInfo parameter is null.
System.ObjectDisposedException:
The process object has already been disposed.
System.IO.FileNotFoundException:
The file specified in the startInfo parameter’s System.Diagnostics.ProcessStartInfo.FileName
property could not be found.
System.ComponentModel.Win32Exception:
An error occurred when opening the associated file. -or-The sum of the length
of the arguments and the length of the full path to the process exceeds 2080.
The error message associated with this exception can be one of the following:
«The data area passed to a system call is too small.» or «Access is denied.»


Parameters:
fileName:
The name of a document or application file to run in the process.

Exceptions:
A new System.Diagnostics.Process that is associated with the process resource,
or null if no process resource is started. Note that a new process that’s
started alongside already running instances of the same process will be independent
from the others. In addition, Start may return a non-null Process with its
System.Diagnostics.Process.HasExited property already set to true. In this
case, the started process may have activated an existing instance of itself
and then exited.

Exceptions:
System.ComponentModel.Win32Exception:
An error occurred when opening the associated file.
System.ObjectDisposedException:
The process object has already been disposed.
System.IO.FileNotFoundException:
The PATH environment variable has a string containing quotes.

Parameters:
fileName:
The name of an application file to run in the process.
arguments:
Command-line arguments to pass when starting the process.

Exceptions:
A new System.Diagnostics.Process that is associated with the process resource,
or null if no process resource is started. Note that a new process that’s
started alongside already running instances of the same process will be independent
from the others. In addition, Start may return a non-null Process with its
System.Diagnostics.Process.HasExited property already set to true. In this
case, the started process may have activated an existing instance of itself
and then exited.

Exceptions:
System.InvalidOperationException:
The fileName or arguments parameter is null.
System.ComponentModel.Win32Exception:
An error occurred when opening the associated file. -or-The sum of the length
of the arguments and the length of the full path to the process exceeds 2080.
The error message associated with this exception can be one of the following:
«The data area passed to a system call is too small.» or «Access is denied.»
System.ObjectDisposedException:
The process object has already been disposed.
System.IO.FileNotFoundException:
The PATH environment variable has a string containing quotes.

Parameters:
fileName:
The name of an application file to run in the process.
userName:
The user name to use when starting the process.
password:
A System.Security.SecureString that contains the password to use when starting
the process.
domain:
The domain to use when starting the process.

Exceptions:
A new System.Diagnostics.Process that is associated with the process resource,
or null if no process resource is started. Note that a new process that’s
started alongside already running instances of the same process will be independent
from the others. In addition, Start may return a non-null Process with its
System.Diagnostics.Process.HasExited property already set to true. In this
case, the started process may have activated an existing instance of itself
and then exited.

Exceptions:
System.InvalidOperationException:
No file name was specified.
System.ComponentModel.Win32Exception:
fileName is not an executable (.exe) file.
System.ComponentModel.Win32Exception:
There was an error in opening the associated file.
System.ObjectDisposedException:
The process object has already been disposed.

Parameters:
fileName:
The name of an application file to run in the process.
arguments:
Command-line arguments to pass when starting the process.
userName:
The user name to use when starting the process.
password:
A System.Security.SecureString that contains the password to use when starting
the process.
domain:
The domain to use when starting the process.

Exceptions:
A new System.Diagnostics.Process that is associated with the process resource,
or null if no process resource is started. Note that a new process that’s
started alongside already running instances of the same process will be independent
from the others. In addition, Start may return a non-null Process with its
System.Diagnostics.Process.HasExited property already set to true. In this
case, the started process may have activated an existing instance of itself
and then exited.

Exceptions:
System.InvalidOperationException:
No file name was specified.
System.ComponentModel.Win32Exception:
fileName is not an executable (.exe) file.
System.ComponentModel.Win32Exception:
An error occurred when opening the associated file. -or-The sum of the length
of the arguments and the length of the full path to the associated file exceeds
2080. The error message associated with this exception can be one of the
following: «The data area passed to a system call is too small.» or «Access
is denied.»
System.ObjectDisposedException:
The process object has already been disposed.

Exceptions:
The System.Diagnostics.Process.ProcessName, combined with the base component’s
System.Object.ToString() return value.

Exceptions:
System.PlatformNotSupportedException:
System.Diagnostics.Process.ToString() is not supported on Windows 98.

Parameters:
milliseconds:
The amount of time, in milliseconds, to wait for the associated process to
exit. The maximum is the largest possible value of a 32-bit integer, which
represents infinity to the operating system.

Exceptions:
true if the associated process has exited; otherwise, false.

Exceptions:
System.ComponentModel.Win32Exception:
The wait setting could not be accessed.
System.SystemException:
No process System.Diagnostics.Process.Id has been set, and a System.Diagnostics.Process.Handle
from which the System.Diagnostics.Process.Id property can be determined does
not exist.-or- There is no process associated with this System.Diagnostics.Process
object.-or- You are attempting to call System.Diagnostics.Process.WaitForExit(System.Int32)
for a process that is running on a remote computer. This method is available
only for processes that are running on the local computer.

Exceptions:
true if the associated process has reached an idle state.

Exceptions:
System.InvalidOperationException:
The process does not have a graphical interface.-or-An unknown error occurred.
The process failed to enter an idle state.-or-The process has already exited.
-or-No process is associated with this System.Diagnostics.Process object.

Parameters:
milliseconds:
A value of 1 to System.Int32.MaxValue that specifies the amount of time,
in milliseconds, to wait for the associated process to become idle. A value
of 0 specifies an immediate return, and a value of -1 specifies an infinite
wait.

Exceptions:
true if the associated process has reached an idle state; otherwise, false.

C# — С# Убить процесс

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

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


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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

Kefir
Дата 12.7.2006, 09:25 (ссылка) | (нет голосов) Загрузка .
Код
using System.Diagnostics;

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

Должно быть так.

Это сообщение отредактировал(а) Kefir — 12.7.2006, 09:26

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

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

jetman
Дата 12.7.2006, 10:13 (ссылка) | (нет голосов) Загрузка .

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

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

reloni
Дата 12.7.2006, 10:33 (ссылка) | (нет голосов) Загрузка .
Код
// Get all instances of Notepad running on the local
// computer.
Process [] localByName = Process.GetProcessesByName(«notepad»);

Так что и для сапера используй просто winmine.

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

Как убить процесс С#?

Я создаю программу на С#, которая распаковывает файл и обрабатывает этот файл.

Иногда я получаю это сообщение: «процесс не может получить доступ к файлу c. потому что он используется другим процессом»

Что я могу сделать? Как его убить?

Вам нужно выяснить, какая программа будет обращаться к файлу. Вы забыли выйти из одного из ваших собственных приложений или есть ли другой доступ к файлу?

Вы можете написать код С#, чтобы убить процесс, но лучший подход — выяснить, почему он уже используется другим процессом.

Чтобы убить все процессы с именем nameOfProcess в С#:

Кроме того, как отмечает @Darin, вы можете посмотреть на этот другой поток SO: Как узнать, какой процесс блокирует файл с помощью .NET?


Как убить процесс, используя Vb.NET или C#?

У меня есть сценарий, где я должен проверить, открыл ли пользователь Microsoft Word. Если да, то я должен убить винворд.exe процесс и продолжать выполнять мой код.

есть ли у кого-нибудь прямой код для убийства процесса с помощью vb.net или c#?

9 ответов

вы захотите использовать система.Диагностика.Процесс.Убивать метод. Вы можете получить процесс, который вы хотите использовать

прямое убийство процесса Word возможно (см. некоторые другие ответы), но откровенно грубо и опасно: что делать, если у пользователя есть важные несохраненные изменения в открытом документе? Не говоря уже о старых временных файлах, которые это оставит.

Это, вероятно, насколько вы можете пойти в этом отношении (VB.NET):

это закроет все открытые окна Word упорядоченным образом (запрашивая пользователя, чтобы сохранить его/ее работу, если это применимо). Конечно, пользователь всегда может нажать кнопку » Отмена «в этом сценарии, так что вы должны быть в состоянии справиться с этим случаем, а также (предпочтительно, поставив» пожалуйста, закройте все экземпляры Word, иначе мы не можем продолжить » диалог. )

Убийство процесса С#

Мне нужно написать программу в С#, которая только начиналась, убить один процесс \exe, который он должен убить и закончить сам.

Процесс, который мне нужно убить, — это еще одно приложение С#, так что это локальный пользовательский процесс, и я знаю путь к exe.

Сначала найдите все процессы для процесса, который хотите убить, чем убить его.

Убийство процессов по их имени можно легко сделать на С# (так как другие ответы уже были показаны отлично). Если вы, однако, хотите убивать процессы, основанные на полном пути исполняемых, становятся более сложными. Один из способов сделать это — использовать WMI, другой способ — использовать функцию Module32First Windows API.

В приведенном ниже примере используется последний подход. Сначала он выбирает подмножество запущенных процессов по их имени и затем запрашивает каждый из этих процессов для их полного исполняемого пути. Обратите внимание, что этот путь будет фактическим путем исполняемого образа, который не обязательно является исполняемым, который был запущен (например, в системах x64 фактический путь к calc.exe будет C:\Windows\SysWOW64\calc.exe, даже если был запущен файл C:\Windows\system32\calc.exe). Все процессы с подходящим путем возвращаются GetProcessesByPath :

Некоторые из кода основаны на статье Джейсона Зандера, которую можно найти здесь.

C# — С# Убить процесс

Привет всем!
Стал заниматься программированием на C# и еще совсем не много знаю. На днях возник вопрос: «Как убивать (завершать) другие процессы из программы, написанной на С#?». К примеру при нажатии на кнопку, хочу, чтобы выключался explorer.exe.

Как это реализовать? Предполагаю, что здесь не обойтись без использования WIN32 API.
Быть может, у кого-то есть готовый кусок кода?

Сообщения: 5623
Благодарности: 935

Функция с параметром типа string, в качестве параметра передается текст команды, например «taskkill /F /IM explorer.exe /T«, и запускается в невидимом режиме cmd.exe, которая и выполняет эту команду.

Далее просто в коде программы, где необходимо, формируем следующий текст:

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

ivashkanet
Дата 12.7.2006, 11:09 (ссылка) | (нет голосов) Загрузка .

Сообщения: 30
Благодарности: 2

Delirium, спасибо за очень подробный ответ.
Я не заморачивался. Признаться, довольно быстро нашел пример, где выдернул нужный код.

Это сообщение посчитали полезным следующие участники:

Сообщения: 5623
Благодарности: 935

Признаться, довольно быстро нашел пример, где выдернул нужный код »
Под администратором работает. Под другими не пробовал, но пишут, что работать не будет.
Интересует теперь вопрос получения админских прав »

Сообщения: 1
Благодарности:

Цукерберг рекомендует:  От увлечения до карьеры и наставничества. Путь программиста
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих