#define   SN_HSREGISTER_ROOT      HKEY_LOCAL_MACHINE
#define   SN_HSREGISTER_PATH      TEXT("Software\\MobileXP\\WireLessPhone")
#define   SN_WHITElIST_STATE            TEXT("IsWhiteListOn")
void ChangeRegOfHs(TCHAR *pN,DWORD value)

Run:
DWORD WhiteListState 
= 1;
ChangeRegOfHs(SN_HSREGISTER_VALUE, WhiteListState);

End:
DWORD WhiteListState 
= 0;
ChangeRegOfHs(SN_HSREGISTER_VALUE, WhiteListState);


void ChangeRegOfHs(TCHAR *pN,DWORD value)
{
         HKEY hKey 
= NULL;
         
if(ERROR_SUCCESS == RegOpenKeyEx(SN_HSREGISTER_ROOT,SN_HSREGISTER_PATH,0,0,&hKey))
         {
                   RegSetValueExW(hKey,pN,NULL,REG_DWORD,(BYTE
*)&value,sizeof(DWORD));
         }
         RegCloseKey(hKey);
}
      
BOOL processOfPortect 
= FALSE;
DWORD dwWhiteListFlag 
= 0;
processOfPortect 
= FindProcess(L"protect.exe");
RegistryGetDWORD(HKEY_LOCAL_MACHINE,SN_HSREGISTER_PATH,SN_WHITElIST_STATE,
&dwWhiteListFlag);
                   
BOOL FindProcess(TCHAR
* ptProcessName)
{

         HANDLE hSnapShot;
         PROCESSENTRY32 proEntry;
         BOOL bRet 
= FALSE;
         TCHAR 
*tDesProcess = NULL;
         TCHAR 
*tEnumProcess = NULL;
         
//DWORD dError = 0;

         memset(
&proEntry,0,sizeof(PROCESSENTRY32));
         proEntry.dwSize 
= sizeof(PROCESSENTRY32);
         tDesProcess 
= (TCHAR*)wcsupr( _wcsdup(ptProcessName) );
         hSnapShot 
= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS|TH32CS_SNAPNOHEAPS,0);
         
if(INVALID_HANDLE_VALUE ==hSnapShot)
         {
                   
goto exit;
         }        
         bRet 
= Process32First(hSnapShot,&proEntry);
         
if(false ==bRet)
                   
goto exit; 
         
while(bRet)
         {
                   
//static int ii = 0;
                   
//ii++;
                   tEnumProcess = (TCHAR*)wcsupr( _wcsdup(proEntry.szExeFile) );
                   
//printf("第 %d process is>>>>%S\r\n",ii,tEnumProcess);
                   if (wcsstr(tDesProcess,tEnumProcess) != NULL)
                   {
                            
goto exit;
                   }
                   free(tEnumProcess);
                   tEnumProcess 
= NULL;
                   bRet 
= Process32Next(hSnapShot,&proEntry);
         }
         
//bRet = TRUE;
exit:                             
         
if(tEnumProcess)
                   free(tEnumProcess);
         
if(tDesProcess)
                   free(tDesProcess);
         
if(TRUE ==bRet && INVALID_HANDLE_VALUE !=hSnapShot)
                   CloseToolhelp32Snapshot(hSnapShot);
         
return bRet;
}

 

posted on 2010-01-08 16:10  Jackill  阅读(233)  评论(0编辑  收藏  举报