できるかを決定するプロセスが始まる。Netアプリケーション?
-
09-06-2019 - |
質問
私は開発コンソール-アプリケーションです。純したい変動を少な情報に基づきその応用から始まりましたcmd.exe からexplorer.exe.高校を卒業したばかりです。
解決
Process this_process = Process.GetCurrentProcess();
int parent_pid = 0;
using (ManagementObject MgmtObj = new ManagementObject("win32_process.handle='" + this_process.Id.ToString() + "'"))
{
MgmtObj.Get();
parent_pid = Convert.ToInt32(MgmtObj["ParentProcessId"]);
}
string parent_process_name = Process.GetProcessById(parent_pid).ProcessName;
他のヒント
の CreateToolhelp32Snapshot機能 はProcess32Firstる方法で読み込む PROCESSENTRY32構造.構造プロパティを持ってるんの欲しい情報:
th32ParentProcessID の識別子 るプロセスにおいて作成したこ 工程(その親プロセス).
この記事ができますの使用を開始したのToolHelpSnapshot機能:
課題のひとつは、ToolHelp/ManagementObject手法であること、親プロセスが既に終了した.
のGetStartupInfo Win32機能(使用PInvoke場合があります。純額相当)を埋める構造を含むウィンドウタイトル.のためのWin32コンソール-アプリケーション"app.exe"このタイトル文字列は"アプリ"開始の時期からcmdと"c:\full\path o\app.exe"開始の時期からexplorerまたはVSデバッガ).
もちろんこのhack(変更、その他のバージョン。
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
int main()
{
STARTUPINFO si;
GetStartupInfo(&si);
MessageBox(NULL, si.lpTitle, NULL, MB_OK);
return 0;
}
所属していません StackOverflow