Lose access to clipboard when computer is locked

19 views (last 30 days)
I have a script I use to process model simulation data and then plot results to PowerPoint using activeX.
Recently, after switching from Windows 7 to 10, I have noticed that if I lock my computer, not hibernate or sleep, the script will continue to run and generate the PowerPoint file. The only problem is that the plots have not been populated however the correct number of slides and slide titles are present.
Here is how I am running activeX:
copyfile('TEMPLATE.pptx',Fname)
p = actxserver('Powerpoint.Application');
pp = p.Presentations.Open(Fname); % open file copied from template
slide_H = pp.PageSetup.SlideHeight;
slide_W = pp.PageSetup.SlideWidth;
ps = pp.Slides;
pT = ps.Item(2);
pTs = pT.Shapes;
pT.Duplicate;
slide = 3;
pc = ps.Item(slide);
set(pc.Shapes.Item(1).TextFrame.TextRange,'Text','SLIDE TITLE')
% following is loops for each plot to be made
plot()
hgexport(gcf,'-clipboard');
pic = invoke(pc.Shapes,'Paste')
set(pic,'Width',0.95*slide_W)
set(pic,'Left',(slide_W-get(pic,'Width'))/2)
%
invoke(pp,'Save')
p.Quit();
p.delete;
using Matlab 21018b

Answers (2)

Alexandre3
Alexandre3 on 25 Nov 2019
Edited: Alexandre3 on 25 Nov 2019
Hi Duncan,
I have exactly the same problem when the computer is locked with windows 10.
My code plots the results from simulation data and then exports the figure to Excel. But when the computer is locked, my code crashes because matlab has no access to the clipboard.
Please let me know if you found a solution.
Best,

michal.markun
michal.markun on 2 Sep 2025 at 13:08
Edited: michal.markun on 2 Sep 2025 at 13:31
Hi,
I have the same problem. The below simplified code (copy it to your Matlab, online doesn't work) works well when the computer is NOT locked. When the screen-saver is on, then I get:
Error using copygraphics
cannot open system clipboard
java.lang.IllegalStateException: cannot open system clipboard
pause(5) %remove security card / turn on screen-saver for a moment
fig=figure;
imagesc(magic(5));
copygraphics(fig);
%rest goes through if screen-saver is off:
Excel = actxserver('Excel.Application');
op = invoke(Excel.Workbooks,'Add');
Sheets = Excel.ActiveWorkBook.Sheets;
target_sheet = Excel.ActiveWorkBook.Worksheets.Add();
target_sheet.Name = 'Sheet1';
invoke(target_sheet, 'Activate');
Activesheet = Excel.Activesheet;
Paste(Activesheet,get(Activesheet,'Range','A1','A1'))
set(Excel, 'Visible', 1);

Categories

Find more on MATLAB Report Generator in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!