3 Downloads
Updated 12 Sep 2007
No License
Syntax:
currentState = setDesktopVisibility(newState)
Description:
setDesktopVisibility(newState) sets the Matlab desktop window visibility state. Valid values for newState are true, false, 'on' & 'off' (case insensitive).
Note: when the desktop visibility is false/'off' (i.e. hidden), the command window is not accessible for user input. Therefore, this function is very useful for GUI-based applications but not for regular interactive (command-window) use.
state = setDesktopVisibility returns the current visibility state of the desktop window (prior to any modification). The returned state is either true/false (Matlab 7) or 'on'/'off' (Matlab 6).
A minor modification of this function will enable any interested user to enable/disable (rather than show/hide) the desktop.
Examples:
curState = setDesktopVisibility;
oldState = setDesktopVisibility('off'); % hide desktop window
oldState = setDesktopVisibility(result>0);
oldState = setDesktopVisibility(true); % restore visibility
Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)
Warning:
This code relies on undocumented and unsupported Matlab functionality. It works on Matlab 6+, but use at your own risk!
Yair Altman (2021). setDesktopVisibility (https://www.mathworks.com/matlabcentral/fileexchange/16330-setdesktopvisibility), MATLAB Central File Exchange. Retrieved .
Inspired by: findjobj - find java handles of Matlab graphic objects
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
The number of code lines is really not the point, if they are working. We do not have to re-type the code, but can download it. Then down voting, because the code catches errors and handles different Matlab version is not smart.
I think you're being overly harsh, ET: Your 2 lines are indeed the essence of my code, but they don't work on Matlab 6, nor return the current desktop state, nor allow 'on'/'off' inputs, nor handle errors like my code. Also, I have not seen any FEX submission nor newsgroup post on this issue so I believe there's both innovation and usefulness in this submission. Finally, considering the fact that the entire function is only 133 lines, half of them comments/explanations, saying there's "too much code" is a bit exaggerated, IMHO.
h = com.mathworks.mlservices.MatlabDesktopServices.getDesktop.getMainFrame
to much code...
can be implemented in 2 lines...
h = com.mathworks.mlservices.MatlabDesktopServices.getDesktop.getMainFrame.setVisible(0);pause(1);com.mathworks.mlservices.MatlabDesktopServices.getDesktop.getMainFrame
current status
>> h.isVisible
set new status
>> h.setVisible(0);pause(3);h.setVisible(1)
or
>> h.setEnable(0);pause(3);h.setEnable(1)
Great work.