惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
I
InfoQ
Jina AI
Jina AI
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
量子位
月光博客
月光博客
罗磊的独立博客
雷峰网
雷峰网
The Cloudflare Blog
V
V2EX
小众软件
小众软件
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题

博客园 - dtor

TD-SCDMA小区初搜方法研究 (转) 面试题 the beginning of gidplus vc任务栏隐藏 sql 连接字符串 xml 留言本 - dtor - 博客园 浮动 div javascript 读写xml --2 - dtor VC编译优化设置 javascript读写 xml - dtor - 博客园 vector 转 array 线程基础知识 VC++ 环 境 下 利 用 管 道 和 线 程 实 现 进 程 间 通 信 Windows管道技术 Windows下多线程编程技术及其实现 error LNK2001: unresolved external symbol _WinMain@16 ATL布幔下的秘密之窗口类的秘密(果冻) atl中的mfc线程 VC制作工具条
关闭进程. - dtor - 博客园
dtor · 2006-09-15 · via 博客园 - dtor

CString m_st_processName="";
    CString m_st_findProcessName
="MonitorClient.exe";         //关闭的程序名
    DWORD     m_i_processID=0;
    HANDLE hProcess;
    
int     m_i_runProcessNum=0;//EnumProcesses方法
    DWORD m_allProcessArray[1024], m_i_arraySize, m_i_processNum;
    unsigned 
int m_i_index=0;
    HMODULE hMod;
//句柄
    char  m_szProcessName[1024]="";//获取名称
    
// 获取进程标识列表.
    if ( !EnumProcesses( m_allProcessArray, sizeof(m_allProcessArray), &m_i_arraySize ))
    {
        
// return FALSE;
        AfxMessageBox(_T("找不到"));
    }
    
//计算有多少个进程.
    m_i_processNum = m_i_arraySize / sizeof(DWORD);
    
//查找每个进程.
    for ( m_i_index = 0; m_i_index < m_i_processNum; m_i_index++ )
    {
        m_i_processID
=m_allProcessArray[m_i_index];
        hProcess 
= OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_TERMINATE |PROCESS_VM_READ,FALSE, m_i_processID );
        
// 获取进程名称.
        if ( hProcess )
        {
            
if ( EnumProcessModules( hProcess, &hMod, sizeof(HMODULE),&m_i_arraySize))
            {
                GetModuleBaseName( hProcess, hMod, m_szProcessName, 
sizeof(m_szProcessName) );
                m_st_processName.Format(
"%s",m_szProcessName);
                
if(m_st_processName.Find(m_st_findProcessName)>=0)
                {
                    TerminateProcess(hProcess,
0);         //这里可以进来,但是运行后,无法关闭进程
                    CloseHandle(hProcess);               //进程在任务管理器中还存在,不知道为什么
                    m_i_runProcessNum++;
                }
            }
        }
    }