在VB中怎么可以测试一个EXE文件的打开与关闭?
这个EXE文件和VB程序没有关系!

解决方案 »

  1.   

    添加到启动窗体的LOAD里面
    If App.PrevInstance Then
    msgbox "程序已经运行"
    end
    end if
      

  2.   

    App.PrevInstance ???
    什么函数?
      

  3.   

    直接在进程中查找bool CUSBRecordApp::isAnotherRunning(const CString &exename)
    {
    /*
    *********************************************************************
    * 函数说明:检查在系统进程中是否有制定的程序正在运行
    *    从而可以防止程序的重复加载(需要tlhelp32.h文件)
    * 输 入 值:exename -> 要查询的文件名
    * 输 出 值:
    * 编 写 人:yo_jo
    * 创建时间:2004-09-20 pm
    *********************************************************************
    */ //For the Version
    HANDLE hProcessSnap = NULL;
    PROCESSENTRY32 pe32 = {0};
        
    //Get the Handle
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

    if(hProcessSnap == (HANDLE)-1)
    {
    printf("\nCreateToolhelp32Snapshot() failed:%d",
    GetLastError());
    return false;
    }

    //Determin the resolution
    int nCurrentRunNum  = 0;

    pe32.dwSize = sizeof(PROCESSENTRY32);

    if(Process32First(hProcessSnap,&pe32))
    {
    do
    {
    //find the exename
    CString temp(pe32.szExeFile);
    temp.MakeUpper();
    if(exename == temp)
    {
                    nCurrentRunNum++;
    }

    }
    while(Process32Next(hProcessSnap,&pe32));
    }
    else
    {
    printf("\nProcess32First() failed:%d",GetLastError());
    }

    CloseHandle(hProcessSnap);

    if(nCurrentRunNum == 2)
    return true;
    else
    return false;
    }
      

  4.   

    Open <EXE文件名> For Binary Access Read Write As #1如果成功就表示没有运行
      

  5.   

    App.PrevInstance只能检查与自己同名的程序是否运行
      

  6.   

    App.PrevInstance  :返回一个值,该值指示是否已经有前一个应用程序在运行
      

  7.   

    App.PrevInstance 不是函數是屬性
      

  8.   

    先获取当前所有正在运行进程的PID值,根据PID可以获取相应进程的EXE文件路径,然后看看有没有你所需要的EXE文件。具体代码,主要分为2个部分:
    1.枚举所有进程的PID
    2.通过PID获取EXE文件名
    这2个程序论坛上都有现成的,楼主可以自己组装一个,用到自己的程序中去。