RT.
我现在获得了一个窗口的句柄,例如是hWnd,现在删除该窗口(在桌面任务栏上面已打开的窗口)对应的进程。
我现在获得了一个窗口的句柄,例如是hWnd,现在删除该窗口(在桌面任务栏上面已打开的窗口)对应的进程。
解决方案 »
- 怎样使Remote ctr与sql server保持连接 ?
- 调用connect函数, 如果服务器端没有启动,或者connect的服务器地址不存在的话,程序就死在那边,
- [求助]手工加入控件后,能使用GetDlgItem(id)得到控件所对应的cwnd值吗
- Windows API参考手册完全版
- 请问如何一次性在整个项目里面改变静态文本(static text)的字体大小?
- 求密码学中的替代、置换加密源代码!
- 使用ReportEvent(...)出现不正常现象,怎么做?
- 我现在在学WINDOWS编程,请大家推荐几个讨论SDK编程的网站或论坛
- 换行出现的问题,进来看看吧
- 关于局域网数据包截取软件的问题
- 如何设置SliderCtrl滑块按钮两端滑杆的颜色。
- 在vc++6.0 下如何才能使类CCheckListBox和相关控件相关联
OpenProcess
TerminateProcess
然后void OnTerminateProcess(unsigned long PID)
{
HANDLE hToken; // handle to process token
TOKEN_PRIVILEGES tkp; // pointer to token structure
BOOL result = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
if(!result) //打开进程错误
return ;
result = LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid );
if(!result)
return ;
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
result = AdjustTokenPrivileges(hToken,FALSE, &tkp,sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES)NULL, (PDWORD)NULL );
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, PID);
::TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
}
::SendMessage(hWnd,WM_CLOSE,0,0); 我这样可以关闭桌面的窗口,但是文件夹窗口就是不可以关闭。
//关闭进程
{
DWORD PID; ::GetWindowThreadProcessId(hWnd, &PID); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,false,PID); if (!hProcess) ::MessageBox(NULL,_T("获取进程句柄操作失败!"),_T("错误!"),NULL); else
{
DWORD dwExitCode = 0;
GetExitCodeProcess(hProcess,&dwExitCode);
if (dwExitCode == STILL_ACTIVE)
{
while (TerminateProcess(hProcess,0) == 0)
{}
} WaitForSingleObject(hProcess,INFINITE);
CloseHandle(hProcess); }
}//关闭窗口{
if(hWnd != NULL )
{
::GetParent()
::DestroyWindow(hWnd);
}}