两个在运行的EXE程序,怎样从其中一个EXE通过Windows消息机制关闭另一个EXE程序??????

wgwyj 2002-12-26 01:08:21
请各位大侠帮忙?
...全文
66 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦回童年001 2002-12-26
  • 打赏
  • 举报
回复
FindWindow可以做到,但这样做不好。
痞子酷 2002-12-26
  • 打赏
  • 举报
回复
他们回答得很好,我帮你up;
回复人: codecb(阿星)
HWND HWndCalculator;
HWndCalculator =FindWindow(NULL, "无标题 - 记事本");
if (HWndCalculator)
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);

或者
DWORD dwProcID;
HANDLE hProcess;

HWND h = FindWindow(0, "未定标题 - 记事本");
if (h==NULL) {
ShowMessage("Not found."); return;

GetWindowThreadProcessId(h, &dwProcID);
hProcess = OpenProcess(PROCESS_ALL_ACCESS,
0, dwProcID);
TerminateProcess(hProcess, 0);


binbin 2002-12-26
  • 打赏
  • 举报
回复
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
那个程序能收到消息并决定是否退出
SendMessage(HWndCalculator, WM_DESTROY, 0, 0);
那个程序能的消息循环被中止而退出,比上面野蛮一些
TerminateProcess(hProcess, 0);
更野蛮的做法.

所谓野蛮,指不通知就关闭,那个程序可能会不不及释放自己占用的资源就结束.
GaoLun 2002-12-26
  • 打赏
  • 举报
回复
不好意思打扰啦 各位:

马上就要新的一年了,先祝大家在新的一年里开开心心,高高兴兴……


也希望大家不要把今年的帖子放到明年再揭帖,特别是2002年9月份以前的帖子,今年的事情今年办完,不要拖拖拉拉的放到明年去!

自己看一下自己还有没有没有揭帖的 或者没有人回复的,特别是2002年9月份以前的,9月份以后的如果没有得到答案的可以暂时不用急着揭帖,如果已经得到答案的,希望也马上去揭帖,还有一些没有人恢复的帖子,自己可以去删掉,否则斑竹删掉的话要扣信誉值,自己删掉没有人恢复,或者只有自己恢复的帖子不扣信誉值的
请大家看看自己的问题

DataBase版的请参照
http://expert.csdn.net/Expert/topic/1265/1265029.xml?temp=.1202509

谢谢大家的合作与支持,祝大家过个好年……
codecb 2002-12-26
  • 打赏
  • 举报
回复
HWND HWndCalculator;
HWndCalculator =FindWindow(NULL, "无标题 - 记事本");
if (HWndCalculator)
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);

或者
DWORD dwProcID;
HANDLE hProcess;

HWND h = FindWindow(0, "未定标题 - 记事本");
if (h==NULL) {
ShowMessage("Not found."); return;

GetWindowThreadProcessId(h, &dwProcID);
hProcess = OpenProcess(PROCESS_ALL_ACCESS,
0, dwProcID);
TerminateProcess(hProcess, 0);
warton 2002-12-26
  • 打赏
  • 举报
回复
用findwindow找到窗另一个exe,关闭它
你搜索一下以前的贴子,这方面多得很

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧