13 个解决方案
#1
在B中用WIN API函数中获取当前运行A的进程句柄的函数,然后用终止进程函数关闭A
#2
如何控制B自动关闭?
你在初始化的时候找到A的句柄,关闭A以后,直接ONCLOSE不就行了么,界面都看不到,杠杠的
你在初始化的时候找到A的句柄,关闭A以后,直接ONCLOSE不就行了么,界面都看不到,杠杠的
#3
响应关闭a程序,里面写上杀死进程
#4
自动关闭?
不可以让A来关闭B么
不是A启动的么
不可以让A来关闭B么
不是A启动的么
#5
B程序是自己的那还不好办啊,在B程序中循环检测A程序是否退出,若检测到A程序已经退出则OnClose()...
#6
用系统调用,你的程序都是在操作系统里面运行的,可以让操作系统删除它
#7
B检查A退出以后,就自己退出~
#8
各位大神 用哪个API去检测呀 A也是个exe
#9
1.找到 A的 threadID
2.如果 GetThreadExitCode != STILL_ALIVE
2.如果 GetThreadExitCode != STILL_ALIVE
#10
win api 里的进程快照函数
枚举所有进程 得到自己的进程 通过该结构 得到父进程的ID,该父进程ID 就是 创建你的exe的进程
枚举所有进程 得到自己的进程 通过该结构 得到父进程的ID,该父进程ID 就是 创建你的exe的进程
#11
B必须先启动,然后检测进程映射表,如果存在A就调用cmd的taskkill终止A进程,然后自己退出。
也就是说A触发不了B启动。
也就是说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);
}
}
//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不就行了么,界面都看不到,杠杠的
你在初始化的时候找到A的句柄,关闭A以后,直接ONCLOSE不就行了么,界面都看不到,杠杠的
#3
响应关闭a程序,里面写上杀死进程
#4
自动关闭?
不可以让A来关闭B么
不是A启动的么
不可以让A来关闭B么
不是A启动的么
#5
B程序是自己的那还不好办啊,在B程序中循环检测A程序是否退出,若检测到A程序已经退出则OnClose()...
#6
用系统调用,你的程序都是在操作系统里面运行的,可以让操作系统删除它
#7
B检查A退出以后,就自己退出~
#8
各位大神 用哪个API去检测呀 A也是个exe
#9
1.找到 A的 threadID
2.如果 GetThreadExitCode != STILL_ALIVE
2.如果 GetThreadExitCode != STILL_ALIVE
#10
win api 里的进程快照函数
枚举所有进程 得到自己的进程 通过该结构 得到父进程的ID,该父进程ID 就是 创建你的exe的进程
枚举所有进程 得到自己的进程 通过该结构 得到父进程的ID,该父进程ID 就是 创建你的exe的进程
#11
B必须先启动,然后检测进程映射表,如果存在A就调用cmd的taskkill终止A进程,然后自己退出。
也就是说A触发不了B启动。
也就是说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);
}
}
//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