Example #1
0
 public string Get(SdkEnvironmentVariableTarget currentUserBeforeEvaluation)
 {
     using (RegistryKey environmentKey = OpenEnvironmentKeyIfExists(writable: false, sdkEnvironmentVariableTarget: currentUserBeforeEvaluation))
     {
         return(environmentKey?.GetValue(Path, "", RegistryValueOptions.DoNotExpandEnvironmentNames) as string);
     }
 }
            public string Get(SdkEnvironmentVariableTarget sdkEnvironmentVariableTarget)
            {
                switch (sdkEnvironmentVariableTarget)
                {
                case SdkEnvironmentVariableTarget.DotDefault:
                    return("");

                case SdkEnvironmentVariableTarget.CurrentUser:
                    return(_mockPathInternal.UserLevelPath);

                default:
                    throw new ArgumentOutOfRangeException(nameof(sdkEnvironmentVariableTarget),
                                                          sdkEnvironmentVariableTarget, null);
                }
            }
            public void Set(string value, SdkEnvironmentVariableTarget sdkEnvironmentVariableTarget)
            {
                switch (sdkEnvironmentVariableTarget)
                {
                case SdkEnvironmentVariableTarget.DotDefault:
                    throw new ApplicationException("Should never touch DotDefault's EnvironmentVariable.");

                case SdkEnvironmentVariableTarget.CurrentUser:
                    _mockPathInternal.UserLevelPath = value;
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(sdkEnvironmentVariableTarget),
                                                          sdkEnvironmentVariableTarget, null);
                }
            }
Example #4
0
        public void Set(string value, SdkEnvironmentVariableTarget sdkEnvironmentVariableTarget)
        {
            using (RegistryKey environmentKey = OpenEnvironmentKeyIfExists(writable: true, sdkEnvironmentVariableTarget: sdkEnvironmentVariableTarget))
            {
                environmentKey?.SetValue(Path, value, RegistryValueKind.ExpandString);
            }

            unsafe
            {
                // send a WM_SETTINGCHANGE message to all windows
                fixed(char *lParam = "Environment")
                {
                    IntPtr r = SendMessageTimeout(new IntPtr(HWND_BROADCAST), WM_SETTINGCHANGE, IntPtr.Zero, (IntPtr)lParam, 0, 1000, out IntPtr _);
                }
            }
        }
Example #5
0
        private static RegistryKey OpenEnvironmentKeyIfExists(bool writable, SdkEnvironmentVariableTarget sdkEnvironmentVariableTarget)
        {
            RegistryKey baseKey;
            string      keyName;

            if (sdkEnvironmentVariableTarget == SdkEnvironmentVariableTarget.CurrentUser)
            {
                baseKey = Registry.CurrentUser;
                keyName = "Environment";
            }
            else if (sdkEnvironmentVariableTarget == SdkEnvironmentVariableTarget.DotDefault)
            {
                baseKey = Registry.Users;
                keyName = ".DEFAULT\\Environment";
            }
            else
            {
                throw new ArgumentException(nameof(sdkEnvironmentVariableTarget) + " cannot be matched, the value is: " + sdkEnvironmentVariableTarget.ToString());
            }

            return(baseKey.OpenSubKey(keyName, writable: writable));
        }