だから私は私が開始するアプリケーションを持っているという問題があります。次に、テストを通じて、オフにしてから再開する必要があります。ただし、ハードコーディングせずに実行する必要があります。
では、プロセスがどこから実行されたかを見つける方法はありますか?実行中のすべてのプロセスのリストを見つけることができますが、これが可能かどうかさえわかりません。
編集:それはWindows7OS上にあります。
QueryFullProcessImageName()は、プロセスの実行可能イメージへのパスを提供します。
#include <windows.h>
#include <iostream>
int main()
{
char exe_path[MAX_PATH];
DWORD exe_path_size = MAX_PATH;
if (QueryFullProcessImageName(GetCurrentProcess(),
0,
exe_path,
&exe_path_size))
{
std::cout << exe_path << "\n";
}
return 0;
}
簡単で移植性の高い方法は、argv[0] を使用することです。必要なのは完全な.exeファイルパスを返します
まず、「プロセスが実行されている場所を見つける」とはどういう意味ですか? 親のプロセスIDを意味していると思いますが、現在の作業ディレクトリ、リモート呼び出しのIPなどを意味する可能性があります...
親のプロセス ID を見つけるには、getppid()を調べます。
編集:これは、あなたが(正気のプログラマーのように)UNIXのようなマシンを使用していることを前提としています。
編集#2:あなたはWindowsを使用しているので、わかりません。
編集 #3: 実行中のプログラムへのパスを探しているので、argv[0] を使用します。int main(int argc, char* argv[]) への最初のコマンド ライン引数は、常にバイナリへのパスです。