win2k进程管理器中有些进程无法关闭 会提示无法关闭什么的
它们并不是服务 请问是不是这些进程设置了自身的级别或什么? 有谁知道?

解决方案 »

  1.   

    调试进程无法关闭;比如,VC调试的EXE;
      

  2.   

    我想应该是权限不够,可以试一试先取得权限!BOOL EnableDebugPrivilege()
    {
      HANDLE hToken;
      BOOL fOk=FALSE;
      if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
      {
        TOKEN_PRIVILEGES tp;
        tp.PrivilegeCount=1;
        if(!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid))
          printf("Can't lookup privilege value.\n");
        tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
        if(!AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL))
          printf("Can't adjust privilege value.\n");
        fOk=(GetLastError()==ERROR_SUCCESS);
        CloseHandle(hToken);
      }
        return fOk;
    }
      

  3.   

    DWORD CFindKillProcess::FindProcess(LPCTSTR modname, BOOL bAddExe)
    {
        CProcessIterator itp;
        for (DWORD pid=itp.First(); pid; pid=itp.Next()) {
            TCHAR name[_MAX_PATH];
            CProcessModuleIterator itm(pid);
            HMODULE hModule = itm.First(); // .EXE
            if (hModule) {
                GetModuleBaseName(itm.GetProcessHandle(),
                    hModule, name, _MAX_PATH);            string sModName = modname;
                if (strcmpi(sModName.c_str(),name)==0)
                    return pid;
                sModName += ".exe";
                if (bAddExe && strcmpi(sModName.c_str(),name)==0)
                    return pid;
            }
        }
        return 0;
    }
    //////////////////
    // 干净地杀死进程:关闭窗口后等待。
    // bZap=TRUE :强行杀死
    //
    BOOL CFindKillProcess::KillProcess(DWORD pid, BOOL bZap)
    {
        CMainWindowIterator itw(pid);
        for (HWND hwnd=itw.First(); hwnd; hwnd=itw.Next()) {
            DWORD bOKToKill = FALSE;
            SendMessageTimeout(hwnd, WM_QUERYENDSESSION, 0, 0,
                SMTO_ABORTIFHUNG|SMTO_NOTIMEOUTIFNOTHUNG, 100, &bOKToKill);
            if (!bOKToKill)
                return FALSE;  // 不愿意死亡,取消行动
            PostMessage(hwnd, WM_CLOSE, 0, 0);
        }    // 我已经关闭了全部主窗口,现在等待进程死亡。 
        BOOL bKilled = TRUE;
        HANDLE hp=OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE,FALSE,pid);
        if (hp) {
            if (WaitForSingleObject(hp, 5000) != WAIT_OBJECT_0) {
                if (bZap) { // 不愿死,那不行,你必须死
                    TerminateProcess(hp,0);
                } else {
                    bKilled = FALSE;
                }
            }
            CloseHandle(hp);
        }
        return bKilled;
    }
    CFindKillProcess的使用方法如下:CFindKillProcess fkp;
    DWORD pid = fkp.FindProcess("outlook.exe");
    fkp.KillProcess(pid);
    FindKillProcess用 CProcessIterator 和 CProcessModuleIterator类来枚举所有进程,查找第一个与名字匹配的模块(即启动进程的exe文件): 
    CProcessIterator itp;
    for (DWORD pid=itp.First(); pid; pid=itp.Next()) {
      CProcessModuleIterator itm(pid);
      HMODULE hModule = itm.First(); // .EXE
      if (/* 模块名 =  正在查找的模块名*/) {
        return pid;
      }
    }     
      

  4.   

    1.win2k进程管理器中有些进程无法关闭 会提示无法关闭什么的那是因为你正在运行系统,这个进程是系统运行时的主要进程,当然不可以终止了,比如
    svchost.exe,  LSASS.exe   CSRSS.exe,其管理着不同的任务
    比如,下面的这些
    smss.exe Session Manager   csrss.exe 子系统服务器进程   winlogon.exe 管理用户登录   services.exe 包含很多系统服务   lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务) 产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)   svchost.exe 包含很多系统服务   svchost.exe   SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)   explorer.exe 资源管理器   internat.exe 托盘区的拼音图标  附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少)   mstask.exe 允许程序在指定时间运行。(系统服务)   regsvc.exe 允许远程注册表*作。(系统服务)   winmgmt.exe 提供系统管理信息(系统服务)。   inetinfo.exe 通过 Internet 信息服务的管理单元提供 FTP 连接和管理。(系统服务)   
    等等
      

  5.   

    2000的系统服务介绍,看看
    最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行)   smss.exe Session Manager   csrss.exe 子系统服务器进程   winlogon.exe 管理用户登录   services.exe 包含很多系统服务   lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务) 产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)   svchost.exe 包含很多系统服务   svchost.exe   SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)   explorer.exe 资源管理器   internat.exe 托盘区的拼音图标  附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少)   mstask.exe 允许程序在指定时间运行。(系统服务)   regsvc.exe 允许远程注册表*作。(系统服务)   winmgmt.exe 提供系统管理信息(系统服务)。   inetinfo.exe 通过 Internet 信息服务的管理单元提供 FTP 连接和管理。(系统服务)   tlntsvr.exe 允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)   允许通过 Internet 信息服务的管理单元管理 Web 和 FTP 服务。(系统服务)   tftpd.exe 实现 TFTP Internet 标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务)   termsrv.exe 提供多会话环境允许客户端设备访问虚拟的 Windows 2000 Professional 桌面会话以及运行在服务器上的基于 Windows 的程序。(系统服务)dns.exe 应答对域名系统(DNS)名称的查询和更新请求。(系统服务)   以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉   tcpsvcs.exe 提供在 PXE 可远程启动客户计算机上远程安装 Windows 2000 Professional 的能力。(系统服务) 支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系统服务) ismserv.exe 允许在 Windows Advanced Server 站点间发送和接收消息。(系统服务)   ups.exe 管理连接到计算机的不间断电源(UPS)。(系统服务)   wins.exe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS 名称服务。(系统服务)   llssrv.exe License Logging Service(system service)   ntfrs.exe 在多个服务器间维护文件目录内容的文件同步。(系统服务)  RsSub.exe 控制用来远程储存数据的媒体。(系统服务)   locator.exe 管理 RPC 名称服务数据库。(系统服务)   lserver.exe 注册客户端许可证。(系统服务)   dfssvc.exe 管理分布于局域网或广域网的逻辑卷。(系统服务)   clipsrv.exe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)   msdtc.exe 并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。(系统服务)   faxsvc.exe 帮助您发送和接收传真。(系统服务)   cisvc.exe Indexing Service(system service)   dmadmin.exe 磁盘管理请求的系统管理服务。(系统服务)   mnmsrvc.exe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。(系统服务)   netdde.exe 提供动态数据交换 (DDE) 的网络传输和安全特性。(系统服务)  smlogsvc.exe 配置性能日志和警报。(系统服务)   rsvp.exe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服务)   RsEng.exe 协调用来储存不常用数据的服务和管理工具。(系统服务) RsFsa.exe 管理远程储存的文件的操作。(系统服务)   grovel.exe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间。(系统服务)   SCardSvr.exe 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)   snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)   snmptrap.exe 接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上 SNMP 管理程序。(系统服务)   UtilMan.exe 从一个窗口中启动和配置辅助工具。(系统服务)   msiexec.exe 依据 .MSI 文件中包含的命令来安装、修复以及删除软件。(系统服务)