• PPC中检查某程序是否运行


    有时候经常需要检查某个程序是否正在运行,在windows mobile 5.0系统开发中我经常用到以下几种方法:

    第一种:
    HANDLE hMutex=::CreateMutexW(NULL,true,L"程序名");
     DWORD dwError=GetLastError();
     if(dwError==ERROR_ALREADY_EXISTS)
     {
      ::AfxMessageBox(L"The program is running!");
      return ;
     }
     ::ReleaseMutex(hMutex);

    第二种:
    HWND hWmp=::FindWindowW(L"Dialog",L"程序窗口名");
     if(hWmp)
     {
       ::AfxMessageBox(L"The program is running!");
      return FALSE;
     }

    第三种:
    PROCESSENTRY32   lppe;
     memset(&lppe,0,sizeof(PROCESSENTRY32));  
     HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
     lppe.dwSize=sizeof(PROCESSENTRY32);
     ::Process32First(handle,&lppe);
     do
     {
      HANDLE hh=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,lppe.th32ProcessID);
      CString temp(lppe.szExeFile);
      if(temp.Find(L"程序名")>=0)
      {
       ::AfxMessageBox(L"The program is running!");
       ::TerminateProcess(hh,0xffffffff);
       ::CloseHandle(hh);
        break;
      }
      ::CloseHandle(handle);
      
     }while(Process32Next(handle,&lppe));
     ::CloseHandle(handle);

    以上三种方法,只能检查其它程序,而不能检查自身是否正在运行,因为windows mobile 系统的运行机制和PC机上的windows XP是不太一样的.
  • 相关阅读:
    BFS 简单思想以及代码
    01、Hibernate安装配置
    WireShark——ARP 协议包分析
    eNSP之VLAN设计实验
    eNSP 交换机 路由器 PC 互连设计/实现
    Windows常用的网络命令
    01、Git安装教程(windows)
    Java IO编程——文件拷贝
    Java 多线程编程——多线程
    Java IO编程——转换流
  • 原文地址:https://www.cnblogs.com/randylee/p/623241.html
Copyright © 2020-2023  润新知