PHP 有没有检测进程是否存在的函数啊?求教下。谢了。

解决方案 »

  1.   

    有什么进程那得让操作系统告诉你,比如linux下查apache进程
    ps -e | grep "apache"
      

  2.   

    然后php用system,exec等函数执行命令。
      

  3.   

    windows好像是tasklist,你自己放狗搜下。
      

  4.   


    命令:Tasklist  功能:命令用来显示运行在本地或远程计算机上的所有进程,可以监控用户的操作。  命令格式:  Tasklist [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]  参数含义  /S system  指定连接到的远程系统。  /U [domain\]user 指定使用哪个用户执行这个命令。  /P [password]  为指定的用户指定密码。  /M [module]  列出调用指定的DLL模块的所有进程。如果没有指定模块名,显示每个进程加载的所有模块。  /SVC 显示每个进程中的服务。  /V 显示详细信息。  实例分析:  如果我们只是查看本地主机进程信息,直接办入命令即可。下面的实例是从客户机远程查看内网中某台主机时程信息。  假如我们有一台服务器:  内网地址:192.168.0.1,  管理员帐号:administrator  管理员密码:password  我们需要在CMD窗口输入:  Tasklist /s 192.168.0.1 /u administrator /p password  这条命令可以使我们方便的查看到远程主机的运行情况,当然前提是保证RPC服务正常启动。
    命令:tskill  功能:用来关掉进程的  命令格式:  TSKILL processid | processname [/SERVER:servername] [/ID:sessionid | /A] [/V]  参数含义  processid 要结束的进程的 Process ID。  processname 要结束的进程名称。  /SERVER:servername 含有 processID 的服务器(默认值是当前值)。  使用进程名和 /SERVER 时,必须指定  /ID 或 /A  /ID:sessionid 结束在指定会话下运行的进程。  /A 结束在所有会话下运行的进程。  /V 显示正在执行的操作的信息。  这个Tskill用法很简单,直接输入Tskill 图象名或PID就可以了。  偶尔碰上Tskill无法结束的进程,还可以试试Ntsd命令,  格式为: ntsd -c q -pn {进程名}  参数含义:  -c是表示执行debug命令;  q表示执行结束后退出;  -p 表示后面紧跟着是你要结束的进程对应的PID;  -pn 表示后面紧跟着是你要结束的进程名; 
      

  5.   

    哎。还是搞不懂。比如说我想判断QQ.EXE是否存在。存在不执行任何语句 不存在就执行QQ.EXE。应该怎么写啊?麻烦简单说下啊。谢了。
      

  6.   


    用php 就算了,你得有个程序来找QQ的句柄.这不是PHP干的,如果有那个工具你就直接用那个工具好了。
      

  7.   


    //C++的
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(PROCESSENTRY32);   
    HANDLE hSnaphot;
    HANDLE hApp;
    DWORD dProcess = 0;
    LPCSTR proname = "QQ.exe"; hSnaphot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    Process32First(hSnaphot, &pe32);
    do
    {
    if (lstrcmpi(pe32.szExeFile,proname)==0)
    {
    dProcess = pe32.th32ProcessID;
    break;
    }
    }while(Process32Next(hSnaphot, &pe32));
    hApp= OpenProcess(PROCESS_VM_OPERATION|SYNCHRONIZE,FALSE,dProcess);

    // 根据进程 ID 获取程序的句柄
    if (!WaitForSingleObject(hApp,INFINITE)) // 等待mencoder.exe程序关闭
    {
    Sleep(3000);
    cout << "查找!" << endl;
    break;
    }//批处理的
    @echo off
    tasklist|find /i "qq.exe" ||exit
    taskkill /im qq.exe /f