如何关闭WinExec打开的程序?

gjgj3368 2003-01-19 12:13:29
我在程序中用WinExec("NOTEPAD.EXE",SW_HIDE)运行了记事本程序,
请问在程序中用什么样的语句可以把NOTEPAD.EXE关闭?
...全文
147 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
warton 2003-01-19
HWND dc = FindWindow(0,"无标题 - 记事本");
CloseWindow(dc);

如果不行的话,按ctr+del+alt看记事本的标题是什么??改了它
回复
jishiping 2003-01-19
使用CreateProcess代替ShellExecute就可以了。

static DWORD dwProcessId=0; //你启动的另一个程序的进程ID
void __fastcall TForm1::Button1Click(TObject *Sender)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;

memset(&si, 0, sizeof(si));
si.cb = sizeof(STARTUPINFO);
if (CreateProcess(NULL,"notepad.exe",NULL,
NULL,FALSE,0,NULL,NULL,&si,&pi)) {
dwProcessId = pi.dwProcessId;
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
HANDLE hProcess;

hProcess = OpenProcess(PROCESS_ALL_ACCESS,
FALSE, dwProcessId);
if (hProcess != NULL) {
TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
}
}
回复
ThinkX 2003-01-19
你用 CreateProcess创建进程
回复
gjgj3368 2003-01-19
TO:warton(新年快乐)
还有其他的方法吗?
如果我运行的不是记事本程序,是其他的程序怎么办呢?
回复
halibut 2003-01-19
学习!
回复
发动态
发帖子
Windows SDK/API
创建于2007-08-02

1202

社区成员

C++ Builder Windows SDK/API
申请成为版主
社区公告
暂无公告