2

Windows でパス環境変数を取得しようとしています。したがって、私は試しました

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
  char* path = getenv("Path");
  cout << "current path is:" << path << endl;
  cin.get(); // program shall be closed when it's finished
}

これは正常に機能し、パスを提供します。実際のパスと比較したところ、このプログラムによって取得されたパスがシステムパスであることがわかりました。ただし、システムパスではなく、ユーザーパスを取得したいと考えています。"Path"私のシステムでは、システムパス変数を参照しているときにユーザーパス変数を参照しているように"path"大文字小文字"Path"を変更しようとしましたが、それを無視しているようです。システムパス変数の値を取得するにはどうすればよいですか?getenv

4

1 に答える 1

5

getenv("PATH");システムパスとユーザーパスを一緒に取得します。

ユーザーパスとシステムパスを別々に見つけるには、Windows レジストリメカニズムを使用する必要があります。それらにアクセスするにPATH は、レジストリの 2 つの異なる位置からの値を読み取ります。

ユーザー変数:

HKEY_CURRENT_USER\Environment

システム変数:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
于 2013-05-26T09:24:39.073 に答える