0

プロセスのIDを見つける必要があり、その名前しかありません。一度に実行されるインスタンスは1つだけなので、探しているものと同じ名前の複数のプロセスで問題が発生することはありません。にとって。

プロセスのIDをその名前だけから取得する方法を誰かが説明してくれれば幸いです。コード例はすばらしいでしょう。

4

2 に答える 2

2

他の質問から判断すると(RegSetValueExタイトルでそれがいくらか明白になります)、私はあなたがWindowsを使用していると推測します。純粋なWindowsAPIソリューションの場合、Toolhelp32 APIを使用して、実行中のプロセスのスナップショットを調べ、それらの名前を探している名前と比較できます。名前は1つだけですが、将来、または他の誰かにとって、その名前のすべてのPIDを持つことが有益になる可能性があるため、次のようにします。

std::vector<DWORD> pids;

HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //all processes

PROCESSENTRY32W entry; //current process
entry.dwSize = sizeof entry;

if (!Process32FirstW(snap, &entry)) { //start with the first in snapshot
    return 0;
}

do {
    if (std::wstring(entry.szExeFile) == wantedProcessName) {
        pids.emplace_back(entry.th32ProcessID); //name matches; add to list
    }
} while (Process32NextW(snap, &entry)); //keep going until end of snapshot
于 2013-01-05T21:51:15.457 に答える
0

* nix環境では、man 3 sysctl

于 2013-01-05T21:52:23.260 に答える