如何在C#中获取诸如外部进程的工作目录之类的信息?
例如,有一个node.JS进程,我想获取它的工作目录。
答案 0 :(得分:0)
如果您提出问题,请提供更多信息以及您已经尝试过的内容! 但是,请参见代码:
using System.Diagnostics;
var process = Process.GetCurrentProcess();
string fullPath = process.MainModule.FileName;
希望这也将有助于查看官方文档: https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process?view=netframework-4.7.2
答案 1 :(得分:0)
如果要获取任何正在运行的进程的路径,请尝试此操作。
功能
[DllImport("Kernel32.dll")]
private static extern bool QueryFullProcessImageName([In] IntPtr hProcess, [In] uint dwFlags, [Out] StringBuilder lpExeName, [In, Out] ref uint lpdwSize);
public static string GetMainModuleFileName(this Process process, int buffer = 1024)
{
var fileNameBuilder = new StringBuilder(buffer);
uint bufferLength = (uint)fileNameBuilder.Capacity + 1;
return QueryFullProcessImageName(process.Handle, 0, fileNameBuilder, ref bufferLength) ?
fileNameBuilder.ToString() :
null;
}
用法
var process = Process.GetProcessesByName("Process").First();
string path = process.GetMainModuleFileName();
希望有帮助。