// ProcInfo.cpp : Defines the entry point for the console application.
//对环境变量的获取与封装
#include "stdafx.h"
#include "windows.h"
#include "conio.h"
class CEnvironment
{
public:
CEnvironment();
~CEnvironment();
public:
BOOL GetEnvStrings();
void FreeEnvStrings( );
void SetEnvVariable( CONST CHAR * pszName,
CHAR * pszValue );
BOOL GetEnvVariable( CONST CHAR * pszName,
CHAR * pszBalue,UINT nLen );
CONST CHAR * GetFirstString();
CONST CHAR * GetNextString();
public:
LPCTSTR m_pEnvStrings;
CHAR * m_pEnvStringsTmp;
};
CEnvironment::CEnvironment()
{
m_pEnvStrings = NULL;
}
CEnvironment::~CEnvironment()
{
FreeEnvStrings();
}
BOOL CEnvironment::GetEnvStrings()
{
m_pEnvStrings = GetEnvironmentStrings();
if( m_pEnvStrings == NULL )
{
return FALSE;
}
return TRUE;
}
void CEnvironment::FreeEnvStrings( )
{
if( m_pEnvStrings != NULL )
{
FreeEnvironmentStrings( (LPTSTR)m_pEnvStrings );
m_pEnvStrings = NULL;
}
}
void CEnvironment::SetEnvVariable( CONST CHAR * pszName, CHAR * pszValue )
{
SetEnvironmentVariable( pszName, pszValue );
}
BOOL CEnvironment::GetEnvVariable( CONST CHAR * pszName, CHAR * pszValue,UINT nLen )
{
DWORD nRet = GetEnvironmentVariable( pszName,pszValue,nLen );
return TRUE;
}
CONST CHAR * CEnvironment::GetFirstString()
{
m_pEnvStringsTmp = ( CHAR * )m_pEnvStrings;
if ( m_pEnvStringsTmp[0] == 0 )
{
return NULL;
}
return m_pEnvStringsTmp;
}
CONST CHAR * CEnvironment::GetNextString()
{
m_pEnvStringsTmp = m_pEnvStringsTmp + strlen( m_pEnvStringsTmp ) + 1;
if ( m_pEnvStringsTmp[0] == 0 )
{
return NULL;
}
return m_pEnvStringsTmp;
}
void Env( )
{
CEnvironment env;
env.GetEnvStrings();
CHAR * pszString = ( CHAR * )env.GetFirstString();
while ( pszString != NULL )
{
printf( "%s\r\n",pszString );
pszString = ( CHAR * )env.GetNextString();
}
env.SetEnvVariable( "MyEnv", "100" );
CHAR szBuf[260] = { 0 };
env.GetEnvVariable( "MyEnv",szBuf, 260 );
printf( "MyEnv = %s\r\n", szBuf );
}
#include "./psapi/psapi.h"
#pragma comment( lib, "./psapi/psapi.lib")
void Procinfo()
{
DWORD nProcID = GetCurrentProcessId();//获得当前进程的进程ID
HANDLE hProc = GetCurrentProcess();//获得当前进程的Handle
printf( " ProcID = %d\r\n", nProcID );
printf( " Proc Handle = %p\r\n", hProc );//该Handle为一个伪Handle
//OpenProcess()//查看真正的Handle
HMODULE hModule[256] = { 0 };
DWORD nNeed = 0;
EnumProcessModules( hProc,hModule,
sizeof( HMODULE) * 256, &nNeed );
DWORD nCount = nNeed /sizeof( HMODULE );
//GetModuleBaseName();
}
int main(int argc, char* argv[])
{
//Env( );
Procinfo();
getch();
return 0;
}
VC对环境变量的获取与封装
最新推荐文章于 2023-03-21 00:12:34 发布