今天把我以前的一个工作文档发上来和大家交流.
一般来说,做任务管理器,都是借用WINCE系统的Toolhelp.lib,通过相应API来得到当前运行的进程,但这个比较麻烦,因为很多系统的进程也会找到,这样你就要多一步去过滤掉一部份,下面我介绍一个自己写的程序,比较容易,比较方便,也比较实用.
在程序初始化时,通过搜索当前运行的窗口,可以得到运行了哪个进程,相应在画上进程正在运行的图标,图略。在点击相应的图标,把该进程的窗口显示。
1.得到当前运行进程:可以从窗口名和窗口类名得到,使用FindWindown函数。如下:
void FindCurrentProcess(void)
{
// HWND hwndFind;
if(FindWindow(_T("AudioPlayer"),_T("AudioPlayer"))||(FindWindow(_T("FM"),_T("FM"))))
{
Audio_Enable = true;
}
if(FindWindow(_T("TxtViewer"),_T("TxtViewer")))
{
Ebook_Enable = true;
}
if(FindWindow(_T("bluetooth"),_T("bluetooth")))
{
BT_Enable = true;
}
if(FindWindow(_T("CARELAND_NAVIGATION"),_T("CARELAND NAVI")))
{
GPS_Enable =true;
}
}
2.点击图标打开进程
如:点击播放器进程:
if((CurrentProcess == ID_AUDIO_ENABLE)&& Audio_Enable)
{
EffectProcess = true;
//绘制点击后图标
m_bitmap =new CBmp(hInst,MAKEINTRESOURCE(IDB_AUDIO_DOWN));
m_bitmap->Draw(hdcNewPic,64,2);
m_bitmap->Free();
Sleep(200);
//将进程放到前台运行
hwndCurrentProcess =FindWindow(_T("AudioPlayer"),_T("AudioPlayer"));
if(!hwndCurrentProcess)
hwndCurrentProcess = FindWindow(_T("FM"),_T("FM"));
ShowWindow(hwndCurrentProcess,SW_SHOW);
}
就是这样,界面上请朋友们自己去做了,实现方法就这么简单.请大家指点.