【コードメモ】VCパソコン環境変数、レジストリ操作の設定
C/C++QQ群へようこそ.仕事をしているかどうかにかかわらず、学生はc/vc/c++プログラミングの経験があれば、来てください.158427611
【パソコン環境変数の設定】
コンピュータの環境変数を設定するのは簡単です.windowでは、環境変数が対応してレジストリに格納されているので、レジストリを書くだけで新しい削除や環境変数の変更ができます.
So easy
レジストリ内の環境変数の場所:HKEY_CURRENT_USER ->Environment
soコードを見る:
【新規レジストリアイテム】
【レジストリの読み出し】
C/C++QQ群へようこそ.仕事をしているかどうかにかかわらず、学生はc/vc/c++プログラミングの経験があれば、来てください.158427611
【パソコン環境変数の設定】
コンピュータの環境変数を設定するのは簡単です.windowでは、環境変数が対応してレジストリに格納されているので、レジストリを書くだけで新しい削除や環境変数の変更ができます.
So easy
レジストリ内の環境変数の場所:HKEY_CURRENT_USER ->Environment
soコードを見る:
bool createComputerPath()
{
if(createReg(HKEY_CURRENT_USER,L"Environment",L"PathName",L"PathValue"))
{
//DWORD dwRet=0;
//SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, NULL, (LPARAM)"Environment", SMTO_NOTIMEOUTIFNOTHUNG, INFINITE, &dwRet);
//SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE , NULL, (LPARAM)"Environment",SMTO_NORMAL, 1000, &dwRet);
//SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE , NULL, (LPARAM)"Environment", SMTO_NOTIMEOUTIFNOTHUNG,1000, &dwRet);
::SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("Environment")); // ,
//WM_SETTINGCHANGE ,
return true;
}
return false;
}
【新規レジストリアイテム】
bool createReg(HKEY table,LPCTSTR key,LPCTSTR item,LPCTSTR values)
{
HKEY hAppKey = NULL;
HKEY hSoftKey = NULL;
if (RegOpenKeyEx(table, key, 0, KEY_WRITE|KEY_READ,&hSoftKey) == ERROR_SUCCESS)
{
if(RegSetValueEx(hSoftKey,
item,
NULL,
REG_SZ,
(LPBYTE)values,
(lstrlen(values)+1) * sizeof(TCHAR)) == ERROR_SUCCESS)
{
if (hSoftKey != NULL)
{
RegCloseKey(hSoftKey);
}
if (hAppKey != NULL)
{
RegCloseKey(hAppKey);
}
return true;
}
}
if (hSoftKey != NULL)
{
RegCloseKey(hSoftKey);
}
if (hAppKey != NULL)
{
RegCloseKey(hAppKey);
}
return false;
}
【レジストリの読み出し】
std::string getInnoSetupPath()
{
//CString regPath = L"HKEY_CLASSES_ROOT\InnoSetupScriptFile\shell\open\command";
HKEY hKEY;// hKEY,
LPCTSTR data_Set=L"InnoSetupScriptFile\\shell\\open\\command\\";
if(::RegOpenKeyEx(HKEY_CLASSES_ROOT,data_Set,0,KEY_READ,&hKEY) != ERROR_SUCCESS)// hKEY,
{
return "";
}
TCHAR res[MAX_PATH];//=new BYTE[MAX_PATH];
DWORD type_1=REG_SZ;//
DWORD cbData_1=MAX_PATH;//
if(RegQueryValueEx(hKEY,L"",NULL,&type_1,(LPBYTE)res,&cbData_1)!=ERROR_SUCCESS)
{
return "";
}
::RegCloseKey(hKEY);
return CStringConvert::CString2string(res);//CString string
}
C/C++QQ群へようこそ.仕事をしているかどうかにかかわらず、学生はc/vc/c++プログラミングの経験があれば、来てください.158427611