Visual Studioで作成しているコンソールアプリケーションを起動したプログラムの名前を取得する必要があります。どのように私はこれを行うことができます上の任意のアイデア?コンソールアプリケーションを実行したプログラムの名前を取得する
私はこれをやっているので、外出中のロボットがどれくらいの時間走っているか、走っている時間がわかります。
Visual Studioで作成しているコンソールアプリケーションを起動したプログラムの名前を取得する必要があります。どのように私はこれを行うことができます上の任意のアイデア?コンソールアプリケーションを実行したプログラムの名前を取得する
私はこれをやっているので、外出中のロボットがどれくらいの時間走っているか、走っている時間がわかります。
あなたはこのようないくつかの他のプロセスの親プロセスを得ることができます。
コンソールアプリケーションの呼び出しを変更できる場合は、プログラム名を引数として指定できます。あなたは、親プロセスに関するすべての情報を取得することができ、このことから
var parent = GetParentProcess(Process.GetCurrentProcess());
のようにそれを使用することになり、あなたのコンソールアプリケーション内部
public static Process GetParentProcess(Process process)
{
string query = "SELECT ParentProcessId FROM Win32_Process WHERE ProcessId = " + process.Id;
using (ManagementObjectSearcher mos = new ManagementObjectSearcher(query))
{
foreach (ManagementObject mo in mos.Get())
{
if (mo["ParentProcessId"] != null)
{
try
{
var id = Convert.ToInt32(mo["ParentProcessId"]);
return Process.GetProcessById(id);
}
catch
{
}
}
}
}
return null;
}
:
プロセスリストでコンソールアプリケーションを見つけて、その親を見つけます。詳細については、[管理された方法で.NETで親プロセスを取得する方法](https://stackoverflow.com/questions/394816/how-to-get-parent-process-in-net-in-managedway)を参照してください。 –