我想把"mp3转wav"这个软件功能添加到我的程序上,考虑到这个软件下下来就是一个可执行文件,所以想请教大家应该如何添加呢?

解决方案 »

  1.   

    如果只是一个.exe文件,这样做好像不行吧?
      

  2.   

    如果这个EXE文件单独就能运行你可以用匿名管道来和它通信
      

  3.   

    是EXE文件可以用以下方式:
    运行
    CString sPath= "F:\\项目进程\\电路画板\\MyPaint9.16.1\\Debug";
    ::ShellExecute(NULL,NULL,_T("MyPaint.exe"),NULL, sPath ,SW_SHOW );
    关闭:
    //找到可执行程序的句柄//关闭电路画板
    HWND hWnd = ::FindWindow(NULL,"MyPaint");
    if (hWnd!=NULL)
    {
    //发送关闭命令
    ::SendMessage(hWnd,WM_CLOSE,NULL,NULL);
    }
      

  4.   

    谢谢!! 
    再问各位一个问题:
       如何把MP3格式的文件转换成8k采样率的WAV格式?哪位朋友提供点算法??!!
    再次非常感谢!!
      

  5.   

    //找到可执行程序的句柄//关闭电路画板
    HWND hWnd = ::FindWindow(NULL,"MyPaint");
    if (hWnd!=NULL)
    {
    //发送关闭命令
    ::SendMessage(hWnd,WM_CLOSE,NULL,NULL);
    }
    为什么关不上呢?
      

  6.   

    HWND hWnd = ::FindWindow(NULL,"MyPaint");
    _________MyPaint替换成你的可执行文件名了吗?
    如果改了的话,跟踪一下看看有没有执行到:::SendMessage(hWnd,WM_CLOSE,NULL,NULL);
    这样用没有问题的
      

  7.   

    我用的winamp测试的,可以打开,但是关闭的时候不起作用,单步执行可以执行到::SendMessage(hWnd,WM_CLOSE,NULL,NULL);语句但是winamp仍继续运行。
      

  8.   

    那你用下面的方法吧,lp是你的可执行文件全名比如:TTPlayer.exe
    使用时在你的文件中#include   <tlhelp32.h> BOOL CXXXX::KillProcess(LPCTSTR lp)
    {
    HANDLE SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if(SnapShot == NULL)
    {
    // MessageBox("检测当前进程失败!");
    return FALSE;
    }
    SHFILEINFO shSmall; CString str,prcnum;
    PROCESSENTRY32 ProcessInfo;//声明进程信息变量
    ProcessInfo.dwSize = sizeof(ProcessInfo);//设置ProcessInfo的大小
    //返回系统中第一个进程的信息
    BOOL Status = Process32First(SnapShot,&ProcessInfo);
    int m_nProcess = 0,num = 0;
    while(Status)
    {
    m_nProcess++;
    num++;
    //ZeroMemory(&shSmall,sizeof(shSmall));
    //获取进程文件信息
    SHGetFileInfo(ProcessInfo.szExeFile,0,&shSmall,sizeof(shSmall),
    SHGFI_ICON|SHGFI_SMALLICON);
    CString strtmp = ProcessInfo.szExeFile;
    //删除指定进程    
    if (strtmp == lp)
    {
    HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE,ProcessInfo.th32ProcessID);
    if(::TerminateProcess(hProcess,1)) 
    {
    //成功杀死进程                                 
    return TRUE;
    }
    }     
    Status=Process32Next(SnapShot,&ProcessInfo);
    }
    return FALSE;
    }