下面这种方法可以指定具体的文件路径,进行关闭。
在C++下封装Dll
BOOL CALLBACK EnumThreadWndProc( HWND hwnd,
LPARAM lParam
)
{
PostMessage(hwnd, WM_CLOSE, 0, lParam);
return TRUE;
}
int CloseThreadWindows(DWORD threadID)
{
int ret = 0;
if(EnumThreadWindows( threadID, EnumThreadWndProc, 0))
{
ret = 0;
}
else
{
ret = -1;
}
return ret;
}
在C#下
public int CloseApplication( string fileName)
{
int ret = 0;
// Get all processes running on the local computer.
Process [] localAll = Process.GetProcesses();
foreach( Process process in localAll)
{
bool isCloseAppli = false;
foreach( ProcessModule pm in process.Modules)
{
if( pm.FileName == fileName)
{
isCloseAppli = true;
break;
}
}
if(isCloseAppli)
{
foreach( ProcessThread thread in process.Threads)
{
ret = 0;//CloseThreadWindows(thread.Id);
}
}
}
return ret;
}