How do I close a Desktop window using Matlab commands?
    조회 수: 24 (최근 30일)
  
       이전 댓글 표시
    
Like 'winopen' opens a desktop window, is there a command in Matalab that closes a particular desktop window (which does NOT belong to Matlab) ?
e.g. the code:
<MatlabCommand>('C:\Program Files\Altair')
closes the given desktop window.
댓글 수: 0
채택된 답변
  Walter Roberson
      
      
 2018년 7월 4일
        You can use system() to invoke taskkill
댓글 수: 3
  Walter Roberson
      
      
 2018년 7월 4일
				You could probably adapt the technique shown in https://www.experts-exchange.com/questions/23580426/close-windows-explorer-window-from-vb.html
추가 답변 (1개)
  Jan
      
      
 2018년 7월 4일
        
      편집: Jan
      
      
 2018년 7월 4일
  
      If you have a C compiler, try this:
// File: KillWindow.c
// Compile: mex -O KillWindow.c
//
// ATTENTION: !!! This kills the window !!!
//            !!! There is no request to save changes !!!
#include <windows.h>
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
  HWND   hWnd;
  size_t Len;
  char   *Name;
    if (nrhs < 1 || !mxIsChar(prhs[0])) {
       mexErrMsgIdAndTxt("JSimon:KillWindow:NInput", 
               "KillWindow needs a char vector as input.");
    }
    // Get name as C string:
    Len  = mxGetNumberOfElements(prhs[0]);
    Name = (char *) mxCalloc(Len + 1, sizeof(char));
    mxGetString(prhs[0], Name, Len + 1);
    // Find window handle of the OS:
    hWnd = FindWindow(NULL, Name);
    mxFree(Name);
    // Close window inf found:
    if (hWnd != 0) {
       // uint WM_SYSCOMMAND = 0x0112; int SC_CLOSE = 0xF060;
       SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
    }
  }
After compiling, call it as:
doc                  % Open Matlab's Help window, window name is "Help"
pause(2)
KillWindow('Help');  % Help window is closed
Again: Killing a window, which contains modified data, will not ask you for saving!
Isn't it strange that you can access windows of other applications through the WindowsAPI?
댓글 수: 3
참고 항목
카테고리
				Help Center 및 File Exchange에서 Environment and Settings에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!