怎么监控程序的运行? 怎么监控程序的运行?也就是说如果进程里面没有这个程序的运行,就自动启动。能有源代码最好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.codeproject.com/KB/threads/procmon.aspx //枚举系统进程void CTteestDlg::load(){ CString temp; //根据这些信息获取进程中有无你要的程序运行 CStringArray pStrAry_ProcessName; //进程名 CUIntArray pUIntAry_ProcessID;//ID CStringArray pStrAry_ProcessPath;//路径 // TODO: Add your control notification handler code here CProcessIterator itp; CStringArray StrAry_ProcessName; CUIntArray UIntAry_ProcessID; CStringArray StrAry_ProcessPath; if ( !CProcessManage::EnumSystemProcess ( &StrAry_ProcessName, &UIntAry_ProcessID, NULL, NULL, &StrAry_ProcessPath) ) { return; } int nCount = 0; for ( int i=0; i<StrAry_ProcessName.GetSize(); i++ ) { CString csProcessName = StrAry_ProcessName.GetAt ( i ); //TRACE ( _T("%s\n"), csProcessName ); csProcessName.MakeLower (); //选择需要的进程 if ( csProcessName == _T("msdev.exe") ) { nCount ++; //进程名 pStrAry_ProcessName.Add ( csProcessName ); TRACE ( _T("%s\n"), csProcessName ); //进程ID pUIntAry_ProcessID.Add ( UIntAry_ProcessID.GetAt(i) ); TRACE ( _T("%d\n"), UIntAry_ProcessID.GetAt(i) ); //进程路径 pStrAry_ProcessPath.Add ( StrAry_ProcessPath.GetAt(i) ); TRACE ( _T("%s\n"), StrAry_ProcessPath.GetAt(i)); } TRACE ( _T("%s\r "), csProcessName ); TRACE ( _T("%d\r "), UIntAry_ProcessID.GetAt(i) ); TRACE ( _T("%s\r\n"), StrAry_ProcessPath.GetAt(i)); m_list.InsertItem(i,""); m_list.SetItemText(i,0,csProcessName); temp.Format("%d",UIntAry_ProcessID.GetAt(i)); m_list.SetItemText(i,1,temp); temp.Format("%s",StrAry_ProcessPath.GetAt(i)); m_list.SetItemText(i,2,temp); } } 急需解答 用SOCKET通讯中如何获取.... 如何检测自己的程序是否有内存泄漏。谢谢。 系统错误问题,对于高手来说肯定不难 请教,如何实现字符串的替换功能 (在线等待,高分奉送-200分“不要怀疑”)注册表下的组件线程模型值什么时候会被访问到? Install Shield 6.3的中文语言包哪儿有下载? _com_issue_errorex问题 关于初始化 一个语言语法问题!(送分题一个) char 数组如何转化为string 一个困惑的AddString问题
//枚举系统进程
void CTteestDlg::load()
{
CString temp;
//根据这些信息获取进程中有无你要的程序运行
CStringArray pStrAry_ProcessName; //进程名
CUIntArray pUIntAry_ProcessID;//ID
CStringArray pStrAry_ProcessPath;//路径
// TODO: Add your control notification handler code here
CProcessIterator itp;
CStringArray StrAry_ProcessName;
CUIntArray UIntAry_ProcessID;
CStringArray StrAry_ProcessPath;
if ( !CProcessManage::EnumSystemProcess (
&StrAry_ProcessName,
&UIntAry_ProcessID,
NULL,
NULL,
&StrAry_ProcessPath)
)
{
return;
}
int nCount = 0;
for ( int i=0; i<StrAry_ProcessName.GetSize(); i++ )
{
CString csProcessName = StrAry_ProcessName.GetAt ( i );
//TRACE ( _T("%s\n"), csProcessName );
csProcessName.MakeLower ();
//选择需要的进程
if ( csProcessName == _T("msdev.exe") )
{
nCount ++;
//进程名
pStrAry_ProcessName.Add ( csProcessName );
TRACE ( _T("%s\n"), csProcessName );
//进程ID
pUIntAry_ProcessID.Add ( UIntAry_ProcessID.GetAt(i) );
TRACE ( _T("%d\n"), UIntAry_ProcessID.GetAt(i) );
//进程路径
pStrAry_ProcessPath.Add ( StrAry_ProcessPath.GetAt(i) );
TRACE ( _T("%s\n"), StrAry_ProcessPath.GetAt(i));
}
TRACE ( _T("%s\r "), csProcessName );
TRACE ( _T("%d\r "), UIntAry_ProcessID.GetAt(i) );
TRACE ( _T("%s\r\n"), StrAry_ProcessPath.GetAt(i));
m_list.InsertItem(i,"");
m_list.SetItemText(i,0,csProcessName);
temp.Format("%d",UIntAry_ProcessID.GetAt(i));
m_list.SetItemText(i,1,temp);
temp.Format("%s",StrAry_ProcessPath.GetAt(i));
m_list.SetItemText(i,2,temp);
}
}