Filter löschen
Filter löschen

How do I close a Desktop window using Matlab commands?

29 Ansichten (letzte 30 Tage)
Asit Kumar
Asit Kumar am 4 Jul. 2018
Kommentiert: Asit Kumar am 18 Nov. 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.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 4 Jul. 2018
You can use system() to invoke taskkill
  3 Kommentare
Asit Kumar
Asit Kumar am 5 Jul. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jan
Jan am 4 Jul. 2018
Bearbeitet: Jan am 4 Jul. 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 Kommentare
Christopher Rose
Christopher Rose am 18 Nov. 2020
Great, share the answer

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Entering Commands finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by