How do I close a Desktop window using Matlab commands?

22 visualizaciones (últimos 30 días)
Asit Kumar
Asit Kumar el 4 de Jul. de 2018
Comentada: Asit Kumar el 18 de Nov. de 2020
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.

Respuesta aceptada

Walter Roberson
Walter Roberson el 4 de Jul. de 2018
You can use system() to invoke taskkill
  3 comentarios
Asit Kumar
Asit Kumar el 5 de Jul. de 2018
For some reason the script in the page you referred to didn't work. However, I looked for similar ideas involving the use of VBS and found a script that worked.
Thank you for the insight.

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 4 de Jul. de 2018
Editada: Jan el 4 de Jul. de 2018
This does not seem to be a task for Matlab. What about AutoHotKey (link)?
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 comentarios
Christopher Rose
Christopher Rose el 18 de Nov. de 2020
Great, share the answer

Iniciar sesión para comentar.

Categorías

Más información sobre Entering Commands en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by