環境變數生效

2021-05-22 21:18:03 字數 2948 閱讀 7237

#include

#include

#include

int setvalue (char * valuename, char *addvalue);

dword nlength = max_path;

char directoryname[max_path];

int apientry winmain(hinstance hinstance,

hinstance hprevinstance,

lpstr     lpcmdline,

int       ncmdshow)

char pvalue[max_path];

::zeromemory(directoryname,max_path);

::zeromemory(pvalue,max_path);

// 得到當前執行檔案的路徑名       

::getcurrentdirectory(nlength,directoryname);

// 設定path環境變數

strcat(pvalue,";");

strcat(pvalue,directoryname);

strcat(pvalue,"//bin");

setvalue("path",pvalue);

// 重置pvalue

::zeromemory(pvalue,max_path);

// 設定classpath環境變數

strcat(pvalue,".;");

strcat(pvalue,directoryname);

strcat(pvalue,"//lib//tool.jar;");

strcat(pvalue,directoryname);

strcat(pvalue,"//lib//dt.jar");

setvalue("classpath",pvalue);

return 0;

int setvalue(char * valuename, char *addvalue)

dword keytype = reg_sz;       

byte getvalue[1024];

dword datalen = 1024;

hkey hroot = hkey_local_machine;

hkey hkey;

char *pisset;

::zeromemory(getvalue,max_path);

char *szsubkey = "system//currentcontrolset//control//session manager//environment";

// 開啟鍵

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,&keytype,getvalue,&datalen);

pisset = strstr((char*)getvalue, directoryname);

// 如果已設定則返回

if (pisset)

char msgtext[80];

strcpy(msgtext,valuename);

strcat(msgtext,"環境變數已配置好,不需再配置!");

::messagebox(null,msgtext,"fc提示",mb_ok);

return -1;

strcat((char*)getvalue,addvalue);

// 寫入鍵值

lret = ::regsetvalueex(hkey, valuename, 0, reg_sz, (byte*)getvalue, strlen((char*)

getvalue));

if (lret == error_success)

char msgtext[80];

strcpy(msgtext,valuename);

strcat(msgtext,"環境變數配置成功!");

::messagebox(null,msgtext,"fc提示",mb_ok);

// 使設定立即生效,下面兩種法都可以

sendmessage(hwnd_broadcast,wm_settingchange,0,(lparam)text("environment"));

//sendmessagetimeout(hwnd_broadcast, wm_settingchange, 0,

(lparam)"environment", smto_abortifhung, 5000, 0);

// 關閉控制代碼

::regclosekey(hkey);

return 0;

} 複製**

on error resume next

set sysenv = createobject("wscript.shell").environment("system") '系統環境變數的陣列物件

sysenv.remove("ztest3")                      '刪除變數

sysenv("ztest3")="test value"                '新增變數

複製**

vbs這種簡單吧……

hkey_current_user/software/microsoft/windows/currentversion/run

永久生效環境變數

方法一 在 etc profile檔案中新增變數 對所有使用者生效 永久的 用vi在檔案 etc profile檔案中增加變數,該變數將會對linux下所有使用者有效,並且是 永久的 要讓剛才的修改馬上生效,需要執行以下 source etc profile 方法二 在使用者目錄下的.bash pr...

環境變數不重啟生效

小技巧 環境變數不重啟生效 先到我的電腦 屬性 高階 環境變數,新增新環境變數或修改已有的環境變數,然後執行 dos命令提示符 或run cmd,假設要修改path變數,不管path的原值是什麼,在dos視窗直接把path修改為任意值,關閉dos視窗,這時,我的電腦 屬性 高階 環境變數裡path已...

新增環境變數(永久生效)

方法一 新增使用者變數 wmic environment create name testuser username username variablevalue d test03 新增系統變數 wmic environment create name testsys username variab...