Is there a way to code a GUI so that screenshots of it cannot be taken?
18 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
So I want to be able to write an exam for my class to administer to them through a GUI. Doing this will enable us to make unique tests for each student and cut down on cheating, however, if they can take screenshots and save these in their notes (the exam is open book/notes) it would undermine our efforts to block cheating. Is it possible to create code in matlab that will make it impossible to take a screenshot of a GUI?
*Update: If it's possible for MatLab récord when a screenshot is taken, that could be a solution here too.
Thanks, Ian
5 comentarios
Walter Roberson
el 23 de Feb. de 2018
Hypothesis:
- perhaps not all the students are going to be taking the test at the same time
- perhaps although the tests are individualized, that there are significant structural similarities, perhaps just differences in constants
- in such a situation, if a more skilled student were to go through the test and take snapshots of their completed code, and leave the snapshots sitting on the computer after they left, and a less skilled student were to then get the same computer and were to retrieve the snapshots, they would be able to see the completed code and copy it by hand, making only the changes required by the individualization.
If that is the scenario being addressed in this situation then:
- do not decide where each student will sit until after the previous wave has gone through and left, so as to reduce the likelihood that the cheating student will happen to get the same computer as the cooperating better student
- use some tool to erase user-writable directories between waves
Jan
el 23 de Feb. de 2018
For point 2.: Using a virtual machine, which removes all changes at a reboot, is a cheap solution.
Respuestas (4)
Jan
el 22 de Feb. de 2018
Editada: Jan
el 23 de Feb. de 2018
You can let the java.awt.Robot to take a screenshot, the operating system using the Print key, some programs for displaying images can do this and cell phones also. You can start the screen recorder of Windows 10 using [Windows]-G and with the psr command under Windows 7.
It will be impossible to block all possible ways. Better change the design of the tests, such that a captured screen does not allow to cheat. You mentioned, that you create unique tests for each student, how would a screen shot help then?
[EDITED] Of course you can run a key-logger to record all typed keys and mouse clicks. This total surveillance allows you to detect everything including screenshots. Nevertheless, what you want to do still sounds more like a trojan than like an exam.
You ask for a method to prevent or register screenshots. I recommend to change the design such, that screenshots are not important. So this is a meta-answer.
Just a thought, which does not concern the actual problem:
I think this kind of teaching is a dangerous development in the last years. Of course I can test 200 students each day automatically by Cody Courseworks, while this took me 3 weeks for revising, if I did this manually and carefully. But what will the students learn by automated teaching methods? If the teachers apply methods to "cheat" that they work with the students individually, the students will "cheat" that they have worked to produce the solution. Then "cheating" is the core of the system, not the behavior of lazy students.
I am aware that some universities employ a professor to teach 200 students, but do not offer money for assistants to revise their homework. You cannot blame the teachers for applying automatic assignments. But it is still a junky production line teaching. Screenshots are not the problem.
I had the lucky and luxury situation to teach 20 students, such that I could read all homework and exams and suggest improvements to their Matlab codes. Maybe some students have cheated. But this would not have been useful for them: The institute did not invite the students with the highest points to apply for a diploma or PhD thesis, but the ones, who were engaged in the course and asked the best questions. There is no way to cheat for this criterion.
0 comentarios
Walter Roberson
el 23 de Feb. de 2018
" Is it possible to create code in matlab that will make it impossible to take a screenshot of a GUI?"
No. You can system() outside programs or make Java calls -- but others can make Java calls too.
"Is it possible to have MatLab take note of when a screenshot is executed?"
No.
I can make a few suggestions:
- If using Windows, use a utility to re-map the printscreen key to something else
- Figure out which directory the built-in screen-capture utility uses, and make sure that directory is read-only.
- Install Linux, to make it less likely that people will know how to trigger a screen capture
- Install a custom version of Linux that has the screen capture utility turned off, since Linux comes with source code.
The online discussions I find say that on Windows, there is no way to completely disable screen snapshots, if the user has access to appropriate utilities or a compiler.
They also indicate that programming the display through Windows Media Presentation can make doing screen snapshots notably more difficult -- but MATLAB does not use WMP for its graphics.
One technique suggested is to never actually output a full correct screen of information: instead take advantage of the persistence of vision and interlacing so that at any one time fair portions of the screen are nonsense but the user still perceives the information by persistence. A particular commercial offering of a program to do that in custom web browser windows was mentioned. But again, MATLAB does not display through browser windows (not for most things.)
This does does, however, lead to a hypothetical possibility: if you were able to build your test functionality in MATLAB SDK then you could use a .NET or Java interface to it, and that could be displaying into a custom web browser that was using a graphics distorting technique. This would, however, not do you any good if the tests require that the users program in MATLAB.
0 comentarios
Ian Passman
el 22 de Feb. de 2018
3 comentarios
Jan
el 24 de Feb. de 2018
Honest students will be unaffected by the changes that we make.
This is a dangerous argument. I did not (have to) cheat in my exams also, but I'd be affected, if all of my activities are controlled. Since I know, that the secret services can detect keywords in emails and phone calls, I am more restrained with terms concerning explosive material and political statements about the middle east - although I'm a pacifist. Sorry, now I got really off-topic. I think I have made my point clear. Unfortunately I do not know a fair and reliable solution for your problem.
Image Analyst
el 23 de Feb. de 2018
Of course, even with all the software tricks to try to prevent screenshots, the person could always just take a snapshot with their smartphone camera. It will not have all the exact RGB values at each pixel, but it will probably be good enough for whatever the intended purpose is, like showing to other people or whatever.
1 comentario
Matt J
el 24 de Feb. de 2018
No, the OP has said that the exam is proctored and cell phones are not permitted.
Ver también
Categorías
Más información sobre Startup and Shutdown 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!