C# 抓取进程快照 propDump方式
private static void CreateMiniDump(string processName)
{
var pl = Process.GetProcessesByName(processName);
if (pl.Length == 0)
{
Console.WriteLine($"找不到进程:{processName}");
return;
}
var process = pl[0];
{
Process.Start("plugins\\procdump.exe", $"-ma {process.Id} -o {AppDomain.CurrentDomain.BaseDirectory}");
//MiniDumpWriteDump(process.Handle,
// process.Id,
// fs.SafeFileHandle.DangerousGetHandle(),
// MINIDUMP_TYPE.MiniDumpNormal,
// IntPtr.Zero,
// IntPtr.Zero,
// IntPtr.Zero);
Console.WriteLine("完成");
}
}
[DllImport("dbghelp.dll")]
public static extern bool MiniDumpWriteDump(IntPtr hProcess,
Int32 ProcessId,
IntPtr hFile,
int DumpType,
IntPtr ExceptionParam,
IntPtr UserStreamParam,
IntPtr CallackParam);
public static class MINIDUMP_TYPE
{
public const int MiniDumpNormal = 0x00000000;
public const int MiniDumpWithDataSegs = 0x00000001;
public const int MiniDumpWithFullMemory = 0x00000002;
public const int MiniDumpWithHandleData = 0x00000004;
public const int MiniDumpFilterMemory = 0x00000008;
public const int MiniDumpScanMemory = 0x00000010;
public const int MiniDumpWithUnloadedModules = 0x00000020;
public const int MiniDumpWithIndirectlyReferencedMemory = 0x00000040;
public const int MiniDumpFilterModulePaths = 0x00000080;
public const int MiniDumpWithProcessThreadData = 0x00000100;
public const int MiniDumpWithPrivateReadWriteMemory = 0x00000200;
public const int MiniDumpWithoutOptionalData = 0x00000400;
public const int MiniDumpWithFullMemoryInfo = 0x00000800;
public const int MiniDumpWithThreadInfo = 0x00001000;
public const int MiniDumpWithCodeSegs = 0x00002000;
}
static void Main(string[] args)
{
//https://docs.microsoft.com/en-us/sysinternals/downloads/procdump
//procdump -ma 4572
Console.WriteLine("正在生成内存快照,请稍等");
CreateMiniDump();
for (int i = 5; i > 0; i--)
{
Console.WriteLine($"完毕,{i}秒后退出...");
Thread.Sleep(1000);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
2016-06-27 C#将图片背景从透明变成白色