ShellExecute是一个函数,他无法返回被启动应用的句柄,也就是说你没法通过他的返回值去关闭外部应用。你可以试试CreateProcess函数,他会返回你启动程序的句柄,后面你可以通过这个句柄来结束这个应用。
或者使用ShellExecute,但是你需要使用进程枚举或者窗口枚举,找到你启动的应用的入口,来结束。
HWND TheWindow;
TheWindow = ::FindWindow( NULL, "你的exe的名称" );
SendMessage(TheWindow,WM_SYSCOMMAND,SC_CLOSE,NULL);
这个可以关闭桌面的任何显示窗口的程序
找到那个窗口的句柄,然后发送关闭消息
SendMessage(hWnd,WM_CLOSE,0,0);
调用TerminateProcess,或者SendMessage发送WM_CLOSE
可以用FindWindow跟OpenProcess就可以了