为了打破Kevin创造的120秒、6500分的“纸牌”得分纪录,我尝试了上百次都未成功。后来干脆用游戏修改器来改得分,但是发现计时器还在走。于是,干脆用编程的方法,将“纸牌”的Timer kill掉。但是出现了一个意想不到的问题。在大多数时候,从SPY++中观察到的wTimerID为514982554,这种情况下KillTimer失败;而偶尔有wTimerID为666的情况,这是KillTimer却总能成功。请教各位,这是怎么回事儿?补充说明:
系统为Win98,纸牌选项为“翻三张”、“标准分”、“计时游戏”、“状态栏”。我写的代码很短,就是选MFC AppWizard(exe)->finish,然后再OnInitDialog()中加入一下语句:
BOOL retval;
CWnd *pWnd=FindWindow("Solitaire","纸牌");
if(pWnd)
{
retval=::KillTimer(pWnd->m_hWnd,SolTID);
if(!retval)
{
AfxMessageBox("关闭计时器失败!");
exit(0);
}
}
else
{
AfxMessageBox("请先运行纸牌!");
exit(0);
}
而SolTID定义为const UINT,根据SPY++观察的结果,每次改为514982554或666。谢谢!