如果你已经得到了窗口的句柄,那么试一下发送WM_CLOSE消息exitprocess函数是用来退出当前进程,如果想使别的进程结束,请使用TerminateProcessexitwindow是用来退出Windows操作系统的。具体情况,请参阅MSDN文章。- 微软亚洲技术中心 VB技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。

解决方案 »

  1.   

    我使用了TerminateProcess无法关闭,而一使用exitprocess就出现错误.wm_close我也尝试过,关闭不了.
      

  2.   

    1、在NT/2000/XP的系统中,进程句柄需要有PROCESS_TERMINATE的访问权限才能被杀掉。2、作为TerminateProcess的参数,请确信第一个参数hProcess就是你要杀掉进程的HANDLE。(得到其他进程的句柄,应用程序需要有SeDebugPrivilege的权限) 3、还有一种情况,就是如果要关闭的进程正处于Kernal-Mode,那么TerminateProcess函数就会不起作用。
    这里介绍几篇文章,以作参考:Q176391:HOWTO: Programmatically Close a Separate Application
    http://support.microsoft.com/support/kb/articles/q176/3/91.asp    Q178893:HOWTO: Terminate an Application "Cleanly" in Win32
    http://support.microsoft.com/support/kb/articles/q178/8/93.asp   Q270117:PRB: TerminateProcess() Does Not Terminate the Target Process         
    http://support.microsoft.com/support/kb/articles/q270/1/17.aspQ131065:HOWTO: How to Obtain a Handle to Any Process with SeDebugPrivile
    http://support.microsoft.com/support/kb/articles/q131/0/65.aspHOWTO: Implement a "Kill" Operation in Windows NT
    http://support.microsoft.com/support/kb/articles/Q90/7/49.ASP    - 微软亚洲技术中心 VB技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
      

  3.   

    顺便问一下,bm_click的常数值是多少
      

  4.   

    用postmessage hwnd,wm_close,0,0试试,可能行
      

  5.   

    用postmessage hwnd,wm_close,0,0可能行