[解決済み] .NETの親プロセスをマネージドで取得する方法
2023-02-20 16:04:07
質問
.NETで親プロセスを取得する方法をいろいろ探していたのですが、P/Invokeの方法しか見つかりませんでした。
どのように解決するのですか?
このコードは、親プロセスオブジェクトを見つけるための優れたインターフェイスを提供し、 同じ名前の複数のプロセスの可能性を考慮に入れています。
使用方法
Console.WriteLine("ParentPid: " + Process.GetProcessById(6972).Parent().Id);
コードです。
public static class ProcessExtensions {
private static string FindIndexedProcessName(int pid) {
var processName = Process.GetProcessById(pid).ProcessName;
var processesByName = Process.GetProcessesByName(processName);
string processIndexdName = null;
for (var index = 0; index < processesByName.Length; index++) {
processIndexdName = index == 0 ? processName : processName + "#" + index;
var processId = new PerformanceCounter("Process", "ID Process", processIndexdName);
if ((int) processId.NextValue() == pid) {
return processIndexdName;
}
}
return processIndexdName;
}
private static Process FindPidFromIndexedProcessName(string indexedProcessName) {
var parentId = new PerformanceCounter("Process", "Creating Process ID", indexedProcessName);
return Process.GetProcessById((int) parentId.NextValue());
}
public static Process Parent(this Process process) {
return FindPidFromIndexedProcessName(FindIndexedProcessName(process.Id));
}
}
関連
-
[解決済み] .NETで文字列を改行で分割する最も簡単な方法とは?
-
[解決済み] 複数の例外を一度にキャッチする?
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] URLのPath.Combineは?
-
[解決済み] 特定のプロパティに対するLINQのDistinct()
-
[解決済み] JavaScriptSerializer - 列挙型を文字列としてJSONシリアライズする
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] C++でPOSIXを使ってコマンドを実行し、その出力を得るにはどうしたらよいですか?
-
[解決済み] プロセスグループの全メンバーにシグナルを送るには、どのような方法が良いでしょうか?
-
[解決済み】.NET FrameworkでMath.Pow()はどのように実装されていますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み] 親プロセスが終了したときに子プロセスを終了させる