Esempio n. 1
0
        // ReSharper disable once UnusedMember.Local
        private static void EnumModules2()
        {
            var snapshot = WinApiWrapper.CreateToolhelp32Snapshot(
                SnapshotFlags.Process, 0);

            if (snapshot == WinApiWrapper.InvalidHandleValue)
            {
                var error = Marshal.GetLastWin32Error();
                Console.WriteLine($"CreateToolhelp32Snapshot Error: {error}");
                return;
            }
            try
            {
                ProcessEntry processEntry = new ProcessEntry();
                processEntry.dwSize = (uint)Marshal.SizeOf(typeof(ProcessEntry));
                if (!WinApiWrapper.Process32First(snapshot, ref processEntry))
                {
                    var error = Marshal.GetLastWin32Error();
                    Console.WriteLine($"Process32First Error: {error}");

                    return;
                }
                do
                {
                    //Console.WriteLine(processEntry.szExeFile);
                    Console.WriteLine($"/////////////////////// PID = {processEntry.th32ProcessID} ///////////////////////");  //!!!! Shall not be used to obtain exe name
                    WalkProcess2(processEntry.th32ProcessID);                                                                  //!!!! Shall not be used to obtain exe name
                }while (WinApiWrapper.Process32Next(snapshot, ref processEntry));
            }
            finally
            {
                WinApiWrapper.CloseHandle(snapshot);
            }
        }
Esempio n. 2
0
        private static void WalkProcess2(uint processId)
        {
            var snapshot = WinApiWrapper.CreateToolhelp32Snapshot(
                SnapshotFlags.Module, processId);

            if (snapshot == WinApiWrapper.InvalidHandleValue)
            {
                var error = Marshal.GetLastWin32Error();
                Console.WriteLine($"CreateToolhelp32Snapshot Error: {error}");
                return;
            }
            try
            {
                ModuleEntry moduleEntry = new ModuleEntry();
                moduleEntry.dwSize = (uint)Marshal.SizeOf(typeof(ModuleEntry));
                if (!WinApiWrapper.Module32First(snapshot, ref moduleEntry))
                {
                    var error = Marshal.GetLastWin32Error();
                    Console.WriteLine($"Module32First Error: {error}");
                    return;
                }
                do
                {
                    Console.WriteLine(moduleEntry.szModule);
                }while (WinApiWrapper.Module32Next(snapshot, ref moduleEntry));
            }
            finally
            {
                WinApiWrapper.CloseHandle(snapshot);
            }
        }