怎样把一个软件的可执行文件集成到自己的程序上??? 我想把"mp3转wav"这个软件功能添加到我的程序上,考虑到这个软件下下来就是一个可执行文件,所以想请教大家应该如何添加呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果只是一个.exe文件,这样做好像不行吧? 如果这个EXE文件单独就能运行你可以用匿名管道来和它通信 是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); } 谢谢!! 再问各位一个问题: 如何把MP3格式的文件转换成8k采样率的WAV格式?哪位朋友提供点算法??!!再次非常感谢!! //找到可执行程序的句柄//关闭电路画板HWND hWnd = ::FindWindow(NULL,"MyPaint");if (hWnd!=NULL){//发送关闭命令::SendMessage(hWnd,WM_CLOSE,NULL,NULL);}为什么关不上呢? HWND hWnd = ::FindWindow(NULL,"MyPaint");_________MyPaint替换成你的可执行文件名了吗?如果改了的话,跟踪一下看看有没有执行到:::SendMessage(hWnd,WM_CLOSE,NULL,NULL);这样用没有问题的 我用的winamp测试的,可以打开,但是关闭的时候不起作用,单步执行可以执行到::SendMessage(hWnd,WM_CLOSE,NULL,NULL);语句但是winamp仍继续运行。 那你用下面的方法吧,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;} 求助:3D旋转界面(3) 升1星,散点分 有关IP地址的问题????????? 如何得到MSSQL用户的权限? 怎么裁剪??? 调试多线程 如何快速读通MFC程序源码? 开始学习vc了,想交几个朋友。请多给些指教,谢谢。 急!关于VC操作数据库的问题。 null_or_nil(芥子)请进来,送分啦。 关于动态分割视图的问题,搞定马上结帖!~ 重绘单选控件CMyRadio,复选控件CMyCheck(实际上也是在CButton下处理吧)后,再次添加BOOL型变量时出错
运行
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);
}
再问各位一个问题:
如何把MP3格式的文件转换成8k采样率的WAV格式?哪位朋友提供点算法??!!
再次非常感谢!!
HWND hWnd = ::FindWindow(NULL,"MyPaint");
if (hWnd!=NULL)
{
//发送关闭命令
::SendMessage(hWnd,WM_CLOSE,NULL,NULL);
}
为什么关不上呢?
_________MyPaint替换成你的可执行文件名了吗?
如果改了的话,跟踪一下看看有没有执行到:::SendMessage(hWnd,WM_CLOSE,NULL,NULL);
这样用没有问题的
使用时在你的文件中#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;
}