Win32Processes.GetHandles Does not exist
本文关键字:exist not Does GetHandles Win32Processes | 更新日期: 2023-09-27 18:14:16
我正在尝试编译这个源代码
class Program
{
static void Main(string[] args)
{
String MutexName = "TibiaPlayerMutex";
String ProcessName = "tibia";
int i = 0;
do
{
try
{
Process process = Process.GetProcessesByName(ProcessName)[0];
var handles = Win32Processes.GetHandles(process, "Mutant", "''Sessions''1''BaseNamedObjects''" + MutexName);
if (handles.Count == 0) throw new System.ArgumentException("NoMutex", "original");
foreach (var handle in handles)
{
IntPtr ipHandle = IntPtr.Zero;
if (!Win32API.DuplicateHandle(Process.GetProcessById(handle.ProcessID).Handle, handle.Handle, Win32API.GetCurrentProcess(), out ipHandle, 0, false, Win32API.DUPLICATE_CLOSE_SOURCE))
Console.WriteLine("DuplicateHandle() failed, error = {0}", Marshal.GetLastWin32Error());
Console.WriteLine("Mutex was killed");
}
}
catch { }
} while (i == 0);
}
}
我得到以下内容
名称"Win32Processes"在当前上下文中不存在d:'users'yorick grijseels'documents'visual studio 2013'Projects'WindowsFormsApplication4'WindowsFormsApplication4'Program.cs 32 35 WindowsFormsApplication4
我谷歌了一下,但我找不到一种方法来解决这个问题,我错过了什么?
你错过了让事情运转的重要部分。从另一个进程中删除互斥锁的问题部分包含了你需要的类(Win32API
和Win32Processes
)。