注冊表和vbs配置環(huán)境變量并立即生效電腦技術(shù)_第1頁
注冊表和vbs配置環(huán)境變量并立即生效電腦技術(shù)_第2頁
注冊表和vbs配置環(huán)境變量并立即生效電腦技術(shù)_第3頁
注冊表和vbs配置環(huán)境變量并立即生效電腦技術(shù)_第4頁
注冊表和vbs配置環(huán)境變量并立即生效電腦技術(shù)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、注冊表和 VBS 配置環(huán)境變量并立即生效 - 電腦技術(shù) - 廣西民族師范學(xué)院論壇 創(chuàng)新的 .注冊表和 VBS 配置環(huán)境變量并立即生效最近開始學(xué)Java。我們主要學(xué) Java Application 和 Java Applet 兩個(gè)分類。為了在任意目錄下都能編譯和運(yùn)行Java程序,需要對P ath 和 classpath 環(huán)境變量進(jìn)行相關(guān)設(shè)置。 終于知道環(huán)境變量用處 之一了。想用程序來實(shí)現(xiàn)一下設(shè)置環(huán)境變量。好不容易用注 冊表函數(shù)寫好, 結(jié)果不行。 暈。后來想到應(yīng)該要刷新一下 注銷和重起都可以。但我想實(shí)現(xiàn)的是立即生效。后來上網(wǎng)搜 了一下 ,得到如下結(jié)果: 通過修改注冊表,修改了系統(tǒng)的環(huán)境變量,但是

2、不會(huì)立即生 效,除非在【我的電腦】上點(diǎn)擊右鍵,然后打開環(huán)境變量的 窗口,點(diǎn)擊【OK】后,才能生效。后來用 Spy+工具捕獲消 息,發(fā)現(xiàn)在點(diǎn)擊【OK】按鈕時(shí),發(fā)送了WM_SETTINGCHANGE 消息。這里有兩種方法可以實(shí)現(xiàn): 1.SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("Environment");2.SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE, 0, (LPARAM)"Environment",SMTO_ABORTI

3、FHUNG, 5000, 0);終于成功了, 高興哇。 后來無意中發(fā)現(xiàn)用 VBS 配置環(huán)境變量并立即生效簡單得要命,當(dāng)場暈倒。面把兩種實(shí)現(xiàn)方法都貼出來吧。/ 配置 JAVA 環(huán)境變量/#include <windows.h>#include <string.h>#include <stdlib.h>int SetValue (char * valueName, char *AddValue);DWORD nLength = MAX_PATH;char DirectoryNameMAX_PATH;int APIE

4、NTRYWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTRlpCmdLine,intnCmdShow)char pValueMAX_PATH;/ 得:ZeroMemory(DirectoryName,MAX_PATH);:ZeroMemory(pValue,MAX_PATH);到當(dāng)前執(zhí)行文件的路徑名:GetCurrentDirectory(nLength,DirectoryName);/ 設(shè)置 path 環(huán)境變量strcat(pValue,"");strcat(pValue,DirectoryName);str

5、cat(pValue,"bin");SetValue("path",pValue);/ 重置 pValue/ 設(shè):ZeroMemory(pValue,MAX_PATH);置 classpath 環(huán)境變量strcat(pValue,".;");strcat(pValue,DirectoryName);strcat(pValue,"libtool.jar;");strcat(pValue,DirectoryName);strcat(pValue,"libdt.jar");SetValue("

6、;classpath",pValue);return 0;int SetValue(char * valueName, char *AddValue)DWORD keyType = REG_SZ;BYTE getValue1024;DWORD DataLen = 1024;HKEY hRoot = HKEY_LOCAL_MACHINE;HKEY hKey;char *pIsset;:ZeroMemory(getValue,MAX_PATH);char *szSubKey ="SYSTEMCurrentControlSetControlSessionManagerEnviro

7、nment"/ 打開鍵DWORD dwDisposition =REG_OPENED_EXISTING_KEY;LONG lRet = :RegCreateKeyEx(hRoot, szSubKey, 0,NULL, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition);if (lRet != ERROR_SUCCESS)return -1;/ 讀取鍵值 lRet= :RegQueryValueEx(hKey,valueName,NULL,&keyTyp

8、e, getValue,&DataLen);pIsset = strstr(char*)getValue, DirectoryName);/ 如果已設(shè)置則返回if (pIsset)char MsgText80;strcpy(MsgText,valueName);strcat(MsgText," 環(huán)境變量已配置好,不需再配置! ");:MessageBox(NULL,MsgText,"fc 提示",MB_OK);return -1;strcat(char*)getValue,AddValue);/寫入鍵值lRet = :RegSetValu

9、eEx(hKey, valueName, 0,REG_SZ, (BYTE*)getValue, strlen(char*)getValue);if (lRet = ERROR_SUCCESS)char MsgText80;strcpy(MsgText,valueName);strcat(MsgText," 環(huán)境變量配置成功! ");:MessageBox(NULL,MsgText,"fc 提示",MB_OK);/ 使設(shè)置立即生效,下面兩種法都可以SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("Environment");/SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE, 0, (LPARAM)"Environment",SMTO_ABORTIFHUNG, 5000, 0);/ 關(guān)閉句柄:RegCloseKey(hKey);return 0;復(fù)制代碼 on error resume next set sysenv =CreateObject("WScript.Shell").Environment("system"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論