所以我有一个情况,我将运行一个脚本,让我们称之为test.bat
,这个脚本将在某个时候运行我的C#程序myprogram.exe
。我需要一种方法来获取调用myprogram.exe
的脚本的名称,这样当我看到该函数的输出时,它是test.bat
。
现在我正在使用此代码:
string GetParentProcessName()
{
int myId = Process.GetCurrentProcess().Id;
string query = string.Format("SELECT ParentProcessId FROM Win32_Process WHERE ProcessId = {0}", myId);
ManagementObjectSearcher search = new ManagementObjectSearcher("root\\CIMV2", query);
var results = search.Get().GetEnumerator();
results.MoveNext();
var queryObj = results.Current;
var parentId = (uint)queryObj["ParentProcessId"];
Process parent = Process.GetProcessById((int)parentId);
Console.WriteLine("My parent process name is: {0}", parent.ProcessName);
return parent.ProcessName;
}
但是,在命令行中运行test.bat
时的输出是“cmd”,而不是“test”或“test.bat”。
我该怎么做?