[Flags]
public enum ThreadAccess : int
{
TERMINATE = (0×0001),
SUSPEND_RESUME = (0×0002),
GET_CONTEXT = (0×0008),
SET_CONTEXT = (0×0010),
SET_INFORMATION = (0×0020),
QUERY_INFORMATION = (0×0040),
SET_THREAD_TOKEN = (0×0080),
IMPERSONATE = (0×0100),
DIRECT_IMPERSONATION = (0×0200)
}
[DllImport("kernel32.dll")]
static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId);
[DllImport("kernel32.dll")]
static extern uint SuspendThread(IntPtr hThread);
[DllImport("kernel32.dll")]
static extern int ResumeThread(IntPtr hThread);
private void SuspendProcess(int PID)
{
Process proc = Process.GetProcessById(PID);
if (proc.ProcessName == string.Empty)
return;
foreach (ProcessThread pT in proc.Threads)
{
IntPtr pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)pT.Id);
if (pOpenThread == IntPtr.Zero)
{
break;
}
SuspendThread(pOpenThread);
}
}
public void ResumeProcess(int PID)
{
Process proc = Process.GetProcessById(PID);
if (proc.ProcessName == string.Empty)
return;
foreach (ProcessThread pT in proc.Threads)
{
IntPtr pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)pT.Id);
if (pOpenThread == IntPtr.Zero)
{
break;
}
ResumeThread(pOpenThread);
}
}
历史博文
- VS2010 BETA2 下载 - 2009
- WordPress 2.8.5 - 2009
- Microsoft Visual Studio 2010 Ultimate Beta 2 - ISO - 2009
- 20080108 opensource erp - 2008
- 20070520 十送红军 送郎调 - 2007
- 0511 MSDN universal dvd china asia 2006 April 缺少 - 2006
- 李媛媛 问题 回答 疑惑 - 2005