自动添加环境变量代码

来源:互联网 发布:js prop checked 编辑:程序博客网 时间:2024/05/21 12:15
#region SetEnvironmentPath        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]        static extern IntPtr SendMessageTimeout(IntPtr hWnd, uint Msg, UIntPtr wParam, string lParam, SendMessageTimeoutFlags fuFlags,                                                uint uTimeout, out UIntPtr lpdwResult);        public static string RegKey = @"System\CurrentControlSet\Control\Session Manager\Environment";        public static string NewPathForFolder = @Application.StartupPath+"\\OOI_HOME";        public enum SendMessageTimeoutFlags : uint        {            SMTO_NORMAL = 0x0000,            SMTO_BLOCK = 0x0001,            SMTO_ABORTIFHUNG = 0x0002,            SMTO_NOTIMEOUTIFNOTHUNG = 0x0008        }        private static void SetEnvironmentPath()        {            RegistryKey key0 = Microsoft.Win32.Registry.LocalMachine;            RegistryKey key = key0.OpenSubKey(RegKey, true);            string OOI_HOMEPath = (String)key.GetValue("OOI_HOME");//OOI_HOME            if (OOI_HOMEPath == null || OOI_HOMEPath.IndexOf(NewPathForFolder, 0) == -1)            {                //OOI_HOMEPath += ";" + NewPathForFolder;OOI_HOMEPath = NewPathForFolder;                key.SetValue("OOI_HOME", OOI_HOMEPath);//OOI_HOME                IntPtr HWND_BROADCAST = (IntPtr)0xffff;                const UInt32 WM_SETTINGCHANGE = 0x001A;                UIntPtr result;                IntPtr settingResult = SendMessageTimeout(HWND_BROADCAST,                WM_SETTINGCHANGE,                (UIntPtr)0,                "Environment",                SendMessageTimeoutFlags.SMTO_NORMAL,                10000,                out result);            }        }        #endregion

0 0
原创粉丝点击