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

我谷歌了一下,但我找不到一种方法来解决这个问题,我错过了什么?

Win32Processes.GetHandles Does not exist

你错过了让事情运转的重要部分。从另一个进程中删除互斥锁的问题部分包含了你需要的类(Win32APIWin32Processes)。