程序A启动 调用B.exe 如何关闭程序A 后,B自己关闭。谢谢!

时间:2021-05-25 18:37:40
A程序是别人的,B是自己写的。如何控制B自动关闭

13 个解决方案

#1


在B中用WIN API函数中获取当前运行A的进程句柄的函数,然后用终止进程函数关闭A

#2


如何控制B自动关闭?
你在初始化的时候找到A的句柄,关闭A以后,直接ONCLOSE不就行了么,界面都看不到,杠杠的

#3


响应关闭a程序,里面写上杀死进程

#4


自动关闭?
不可以让A来关闭B么
不是A启动的么

#5


B程序是自己的那还不好办啊,在B程序中循环检测A程序是否退出,若检测到A程序已经退出则OnClose()...

#6


用系统调用,你的程序都是在操作系统里面运行的,可以让操作系统删除它

#7


引用 楼主 a3622041 的回复:
A程序是别人的,B是自己写的。如何控制B自动关闭

B检查A退出以后,就自己退出~

#8


各位大神  用哪个API去检测呀  A也是个exe

#9


1.找到 A的 threadID
2.如果 GetThreadExitCode != STILL_ALIVE

#10


win api 里的进程快照函数
枚举所有进程 得到自己的进程  通过该结构 得到父进程的ID,该父进程ID 就是 创建你的exe的进程

#11


B必须先启动,然后检测进程映射表,如果存在A就调用cmd的taskkill终止A进程,然后自己退出。

也就是说A触发不了B启动。

#12


以 B 程序为 对话框 为洌:
//DWORD m_PIDofA;// =0

对话框 init :
if(m_PIDofA==0)
{
CPoint pt;
GetCursor(&pt);
CWnd *pWinBehind=WindowFromPoint(&pt);
GetWindowThreadProcessId(pWinBehind->m_hWnd,&m_PIDofA);
}
// OnTimer
if(m_PIDofA)
{
HANDLE hh= OpenProcess(PROCESS_ALL_ACESS,TRUE,m_PIDofA);
DWORD ExitCode;
GetExitCodeProcess(hh,&ExitCode);
if(ExitCode != STILL_ACTIVE)
{
KillTimer(1);
EndDialog(0);
}
}

#13


A 上有个 按钮 驱动 B

#1


在B中用WIN API函数中获取当前运行A的进程句柄的函数,然后用终止进程函数关闭A

#2


如何控制B自动关闭?
你在初始化的时候找到A的句柄,关闭A以后,直接ONCLOSE不就行了么,界面都看不到,杠杠的

#3


响应关闭a程序,里面写上杀死进程

#4


自动关闭?
不可以让A来关闭B么
不是A启动的么

#5


B程序是自己的那还不好办啊,在B程序中循环检测A程序是否退出,若检测到A程序已经退出则OnClose()...

#6


用系统调用,你的程序都是在操作系统里面运行的,可以让操作系统删除它

#7


引用 楼主 a3622041 的回复:
A程序是别人的,B是自己写的。如何控制B自动关闭

B检查A退出以后,就自己退出~

#8


各位大神  用哪个API去检测呀  A也是个exe

#9


1.找到 A的 threadID
2.如果 GetThreadExitCode != STILL_ALIVE

#10


win api 里的进程快照函数
枚举所有进程 得到自己的进程  通过该结构 得到父进程的ID,该父进程ID 就是 创建你的exe的进程

#11


B必须先启动,然后检测进程映射表,如果存在A就调用cmd的taskkill终止A进程,然后自己退出。

也就是说A触发不了B启动。

#12


以 B 程序为 对话框 为洌:
//DWORD m_PIDofA;// =0

对话框 init :
if(m_PIDofA==0)
{
CPoint pt;
GetCursor(&pt);
CWnd *pWinBehind=WindowFromPoint(&pt);
GetWindowThreadProcessId(pWinBehind->m_hWnd,&m_PIDofA);
}
// OnTimer
if(m_PIDofA)
{
HANDLE hh= OpenProcess(PROCESS_ALL_ACESS,TRUE,m_PIDofA);
DWORD ExitCode;
GetExitCodeProcess(hh,&ExitCode);
if(ExitCode != STILL_ACTIVE)
{
KillTimer(1);
EndDialog(0);
}
}

#13


A 上有个 按钮 驱动 B