【发布时间】:2014-09-25 13:01:33
【问题描述】:
我需要通过进程获取在应用程序中打开的文件的完整路径。
例如,我在记事本中从C:\Users\Admin\Documents\sample.txt 打开了一个txt 文件。而我在桌面上打开了两个记事本。如果我使用Process.GetProcessesByName("notepad");,我可能会获得所有正在运行的记事本实例,我什至可以使用Mainmodule.Filename获得运行进程的完整路径
但我的要求是我需要从进程中获取文件的路径(即sample.txt)。有可能吗?
所以我试过了:
Process[] localByName = Process.GetProcessesByName("EA");
string path = localByName[0].Modules[0].FileName;
foreach (Process process in localByName)
{
}
【问题讨论】:
-
恕我直言,除非应用程序提供一些 API 来做到这一点,否则这是不可能的。最多您将能够获得用于启动进程的命令行参数 - 请参阅here。你究竟为什么要这样做?
-
您是否只是发布了一个空代码块并标记了它到目前为止我已经尝试过?
-
stackoverflow.com/questions/177146/… 中涵盖了某些情况(当程序保持文件打开时),否则在 jadavparesh06 的答案中涵盖的信息的一般情况下,这是不可能的。