//////////////////////////////////////////////////////////////////////////////////
bool CProtectGameGuard::initializeGameGuard()
{
//
不要启动GameGuard
std::string cmdline = my_t2utf8(GetCommandLine());
bool isDebugMode = cmdline.
find
(
" nonp"
) != std::string::npos;
if
( isDebugMode==
true
)
{
return
true
;
}
//ShowWindow
((HWND)gGlobalClient->getHWND(),SW_HIDE);
mNPGameLib = new CNPGameLib(_T(
"DanXing"
));
DWORD dwResult = mNPGameLib->Init();
if
(dwResult != NPGAMEMON_SUCCESS)
{
//
Result of GameGuard initialization error
switch (dwResult)
{
case
NPGAMEMON_ERROR_EXIST:
break
;
case
NPGAMEMON_ERROR_GAME_EXIST:
break
;
case
NPGAMEMON_ERROR_INIT:
break
;
case
NPGAMEMON_ERROR_AUTH_GAMEGUARD:
break
;
case
NPGAMEMON_ERROR_NFOUND_GG:
break
;
case
NPGAMEMON_ERROR_AUTH_INI:
break
;
case
NPGAMEMON_ERROR_NFOUND_INI:
break
;
case
NPGAMEMON_ERROR_CRYPTOAPI:
break
;
case
NPGAMEMON_ERROR_EXECUTE:
break
;
case
NPGAMEMON_ERROR_ILLEGAL_PRG:
break
;
case
NPGMUP_ERROR_ABORT:
break
;
case
NPGMUP_ERROR_CONNECT:
break
;
case
NPGAMEMON_ERROR_GAMEGUARD:
break
;
case
NPGMUP_ERROR_PARAM:
break
;
case
NPGMUP_ERROR_INIT:
break
;
case
NPGMUP_ERROR_DOWNCFG:
break
;
case
NPGMUP_ERROR_AUTH:
break
;
case
NPGAMEMON_ERROR_NPSCAN:
break
;
case
NPGG_ERROR_COLLISION:
break
;
default:
break
;
}
char msg[512];
sprintf( msg,_GT(
"nProtect GameGuard 初始化产生错误:%d"
),dwResult );
SendLogToServer( dwResult,msg,strlen(msg) );
MessageBox( (HWND)gGlobalClient->getHWND(),my_utf82t(msg), my_utf82t(_GT(
"初始化失败"
)),MB_OK );
char faq_url[256];
sprintf( faq_url,
"http://danxing/service/gameguard_faq.html#A%d"
,dwResult );
shellExecute(
"open"
,faq_url );
g_pApp->
exit
();
return
false
;
}
mNPGameLib->SetHwnd( (HWND)gGlobalClient->getHWND() );
mNPGameLib->Send(my_utf82t(GetMacAddress()));
gGlobalClient->getTimerAxis()->SetTimer( 0,100,this );
gGlobalClient->getMessageDispatch()->registerMessageHandler( MSG_MODULEID_GAMEGUARD,this );
return
true
;
}