用MFC建了一个基于对话框的程序,怎样按一个按钮可以关闭一个.exe文件

我用MFC建了一个基于对话框的程序,上面有两个按钮,一个按钮实现打开一个.exe文件,另一个按钮关闭这个.exe文件,应该怎样为这两个按钮编写程序呢?... 我用MFC建了一个基于对话框的程序,上面有两个按钮,一个按钮实现打开一个.exe文件,另一个按钮关闭这个.exe文件,应该怎样为这两个按钮编写程序呢? 展开
 我来答
jill0908
2008-06-07 · TA获得超过487个赞
知道小有建树答主
回答量:1169
采纳率:0%
帮助的人:436万
展开全部
如果你是MFC程序,直接向导就有2个按钮了,一个是"确定"按钮,一个是"取消"按钮.

在资源那里直接双击"确定"按钮,就会进入代码.
写上:
WinExec("C:\\Program Files\\Tencent\\QQ\\QQ.exe",SW_SHOW);

退出程序:
HWND hWnd = FindWindow("QQ",NULL);
if(hWnd)
{
PostMessage(hWnd,WM_CLOSE,NULL,NULL);
}
这个不一定能成功,FindWidow主要是根据窗口标题来查找的,如果你打开的exe窗口标题知道的就可以用.像qq这个标题不确定,就不可以.我举例说明而已.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风轻云度
2008-06-07 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
1、在打开exe的时候用CreateProcess,返回一个句柄,然后Get其Process ID ,保存起来。
代码示例如下:
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( π, sizeof(pi) );

// Start the child process.
if( !CreateProcess( NULL, // No module name (use command line).
TEXT("MyChildProcess"), // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
π ) // Pointer to PROCESS_INFORMATION structure.
)
{
printf( "CreateProcess failed (%d).\n", GetLastError() );
return;
}

// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

通过
DWORD GetProcessId(
HANDLE Process
);
得到ID。

2、通过进程ID,得到句柄,然后调用API :

HANDLE OpenProcess(
DWORD dwDesiredAccess,
BOOL bInheritHandle,
DWORD dwProcessId
);

BOOL TerminateProcess(
HANDLE hProcess,
UINT uExitCode
);

将其关闭。

3、第三种方法就是通过枚举的方法,用EnumProcess,枚举到你要杀掉的进程然后通过TerminateProcess关闭。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dareny
2008-06-07 · TA获得超过505个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:212万
展开全部
分别双击两个按钮就加入了ONBUTTON消息响应函数
然后分别在里面加上如下代码就可以了:
WinExec("C:\ab.exe",SW_SHOW);//打开一个.exe文件.
关闭你打开的那个文件可以在你的程序里调用下面DOS命令就可以完成!
c:\>ntsd -c q -p PID 它可以杀掉大部分的进程
你只需要把PID改成你要关掉的进程PID就可以了
PID可以在任务管理器里得到!当然你也可以使用API函数遍历系统上所有进程,然后关闭你指定的进程,但是实现起对新手来说还是比较麻烦的

有什么问题可以发消息给我!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式