Exemple #1
0
        public static Process Parent(this Process p)
        {
            var entries  = Toolhelp32.TakeSnapshot <WinProcessEntry>(Toolhelp32.SnapAll, 0);
            var parentid = entries.First(x => x.th32ProcessID == p.Id).th32ParentProcessID;

            return(Process.GetProcessById(parentid));
        }
    static void EnumerateModules()
    {
        var provider = new CustomFormatter {
        };

        foreach (var x in Toolhelp32.TakeSnapshot <WinModuleEntry>(Toolhelp32.SnapModule, 0))
        {
            Debug.WriteLine(String.Format(provider, ".. {0}", x));
        }
    }
    static void EnumerateHeap32List()
    {
        var provider = new CustomFormatter {
        };
        var id       = Process.GetCurrentProcess().Id;

        foreach (var x in Toolhelp32.TakeSnapshot <WinHeap32ListEntry>(Toolhelp32.SnapHeapList, id))
        {
            Debug.WriteLine(String.Format(provider, ".. {0}", x));
        }
    }
Exemple #4
0
 public static Process Parent(this Process p)
 {
     try
     {
         IEnumerable <WinProcessEntry> entries = Toolhelp32.TakeSnapshot <WinProcessEntry>(Toolhelp32.SnapAll, 0);
         int parentid = entries.First(x => x.th32ProcessID == p.Id).th32ParentProcessID;
         return(Process.GetProcessById(parentid));
     }
     catch (Exception)
     {
         return(null);
     }
 }
    static void EnumerateProcessesTwice()
    {
        var provider = new CustomFormatter {
        };

        var entries = Toolhelp32.TakeSnapshot <WinProcessEntry>(Toolhelp32.SnapProcess, 0);

        foreach (var x in entries)
        {
            Debug.WriteLine(String.Format(provider, "1 .. {0}", x));
        }

        // Snapshot disposed and created again
        foreach (var x in entries)
        {
            Debug.WriteLine(String.Format(provider, "2 .. {0}", x));
        }
    }
Exemple #6
0
 public Snapshot(uint flags, int processId)
 {
     m_handle = Toolhelp32.CreateToolhelp32Snapshot(flags, processId);
 }
Exemple #7
0
 void IDisposable.Dispose()
 {
     Toolhelp32.CloseHandle(m_handle);
 }