Black screen on windows logon - java

We're currently developing an application to control classrooms. We already know about iTalc but it won't work for us since its development is quite stuck. We feel more comfortable writing in Java rather than in c++, so we decided to create our own in Java.
For now most things are working but we got a problem with the screen capturing when on WINLOGON.
Our application uses Robot for screen capturing (we display up to 50 remote screenshots in main frame) and VNC to provide us real time remote control.
Everything works fine while the application is run as logged user, but if we wrap it in a service to start our application during winlogon credentials we get BLACK SCREENSHOTS.
After reading we learnt about the Windows Session Isolation 0 since windows vista, but since iTalc does, there's sure to be a workaround we can't seem to find in the iTalc code.
The main question is: Has anyone solved the session isolation 0 with Robot class? Also being able to tell robot to switch which session we want him to take screenshot from would be great.

We did something similar, but in c#. As long as you can make the win32 API calls from java it should work.
You'll need a separate application to actually take the screenshot and that app is started from the service while impersonating the logged in user.
Here is our C# code: https://stackoverflow.com/a/45095509/125406

Related

Web app "taking" control of pc

I wanto to build a simple e-learning web app, allowing students to only execute/access resources directly related to the current lesson, so they can stay focused. So the idea is this web app somehow becames "the only" app the student has access to, not being even able to use the operating system (windows 8).
I wonder if this is even possible.
Thx in advance.
No, a web app CANNOT take control of a PC. If it can, there is a big security hole and it need to be fixed right away.
In your case, you don't need a web app to take control of the PC. You only need a way so that students can't easily exit the learning application. The cheapest way is to look into browser full screen mode, hide menu bar etc, so that students can only see education content. This is what older version of learning application does. However, newer browsers has too much help for user to get out of full screen mode.

I need something to automate web browser tasks in its own virtual enviorment (Chrome)

Ever since i started learning java i wanted to create a way to automate a few actions on a couple websites,
For example, topline is a website that replaces all your ads with its own ads and pays you a bit of money for it, i want to emulate the act of just surfing the web, then start emulating specific tasks like clicking certain buttons or playing flash games (Actually playing the game by using image recognition) and this has to be written in java as i want to run this on a raspberry pi.
any help is appreciated, is there a class that i can use?
any help is appreciated!
Selenium is a good browser automation tool. Refer http://seleniumhq.org/
You can get more info on Google. Let me know if you need help finding resources.
Check the class Robot, it will help you to emulate mouse interactions with the screen, but you have to implement the image recognition though
Although I can't point you to a JAVA solution, I would like to advocate two very interesting tools: PhantomJS and CasperJS. The latter depends on the first, and with them, browser navigation scripting and testing are a breeze.
They both work on Linux, MAC OS and Windows and are as multiplatform as Javascript can be. Naturally, it will work just fine in you Raspberry Pi.

How to prevent user close my application? (Linux Touchscreen apps)

I would like to have an application running in a linux box with a touchscreen monitor.
I don't want to use Flash player (with full window size), so my question is, what I should use instead of a Flash Player?
This box is gonna be in a place with a lot of kids, so they can close the application and shutdown the machine XD.
I'm not a Sr. Java developer, so I don't know if theres something over there to block the 'close window' feature in an java application.
Thanks in advance!
Assuming you're using swing, you could use Frame.setUndecorated(true) and maximize it. There is also the option of exclusive full screen mode. From there, you'll have to unbind any global keys that map to window-exiters/taskmanagers/other-utils.
You may also want a watcher/spawner script setup to make sure your app stays up. I bet there is a more elegant way to do this but most window managers try to avoid an app doing this due to malicious possibilities.

Java web start on iPad

Can I run Java applications (Java Web Start) on iPad?
Looks like this is not possible, but someone suggested using Cloud Browse (an application I couldn't' find) to run Java.
Any solutions?
UPDATE: Cloud Browser is an application that was available on the App Store but it was removed my Apple. Cloud Browse would process the web site externally and then stream the web site content to your iPad screen (something like video streaming).
No, you cannot run Java programs on the iPad (or any iOS device). Apple's license terms forbid running applications that can execute code downloaded from the Internet (which is what Java Web Start is all about).
No, as staffan said, Webstart will not work. However using CloudBrowse, an applet can work. It looks like the idea behind Cloud Browse is that the browser gets rendered on the server and video of the web page get streamed to your phone. This way, it appears to the user that applets or flash are running on the ipad.
I tried CloudBrowse on my IPAD as I've got a Java Applet that runs inside a brower and wanted it to work on my Ipad.
I found that it works pretty well. The Java Applet has a 3D animation, it's not as smooth as running on Windows/Mac through a normal web-browser, but it's pretty good.
I paid for full version, wasn't that expensive and to me, worth it. Opens up the power of using Applets but within Ipad!
Check it out here ... 3D sailing replay.

Video training program

I am looking to create a video training program which records videos - via webcam, user screen capture and captures sound. Now the main problem is that I need a cross-platform (mac and windows) solutions.
I know its possible to use flash to record webcam + audio. But its not possible to record the user's screen via flash.
So am wonder if I should use Java (which i believe will work on mac & windows). I do not want to develop to separate versions because of the cost involved in developing two versions.
Please guide me as I am new to this.
Thank you.
UPDATE
Hello again,
I had a look at the following site: www.screencast-o-matic.com or www.screentoaster.com. I see that they have developed a java applet which helps interact with Windows/Mac to record the screen.
I am wondering how to go about developing something like that and integrating it with Flash (for webcam and audio recording).
Is this a better idea?
This is not an answer to your question, but I strongly recommend against using video for educational programmes. Our company delivers university courses on-line, and we long ago learned that video feeds are only effective under particular scenarios. In general, a talking head is a waste of bandwidth. You're much better off to put together a well designed powerpoint presentation, record a voice-over (and edit it!) and then assemble the whole thing as a flash presentation. This is a non-trivial amount of work, but it provides a much more interesting product for the student.
When to use video:
1) When you are demonstrating something dynamic - Mechanics or Chemistry for example.
2) When you are acting out a scenario or case as an illustration -- For example, threat de-escalation techniques for high school teachers.
When you solve the screen recording problem, seriously consider whether you need full motion or if you can get away with stills. Often the motion is distracting, and a still with good voice over can be more effective. (Hint: Replace mouse pointers with something HUGE before recording -- Like Fox did with hockey pucks)
Try CamStudio. I don't know, if it works on Mac, but on windows, it's the best solution I know. It's open source, so you can use it's source code, if you want to :)
If you're looking to build an application that does all of the recording and screen capture itself, then you might consider using Adobe AIR (essentially, Flash running on the desktop) in combination with Merapi. Merapi is essentially a bridge between Adobe AIR and Java. So for example, for your project, you might use Java to handle the lower-level (but still cross-platform) stuff you can't do natively in AIR, and use Merapi to wire the Java application to your AIR UI.
This is by no means a simple project. Lets get that said and out the way. There are open source (and cross-platform) options for each element, but nothing (I know of) that will do everything for you.
I think the "cleanest" option would be to use Flash for webcam and audio, as you said, and run a VNC server to send the screen video... The only closed-platform code will be the VNC launching code. That should be pretty simple to maintain!
That raises a problem because most people are behind NAT firewalls these days. Setting up port forwarding is a pain in the behind. I've used an app called Gitso before which allows people to connect to me and send their desktop to my screen (for tech support). Its VNC-based and all it really does is add another layer on top of the VNC connection so rather than me connecting to them, they connect to me. That makes the whole business of port forwarding a non-issue.
And once you've recorded everything, there's the final issue of syncing it all back together... Might not be so hard.
Well, Camtasia provides the solution to get your problem done. It can record the onscreen activity and also the webcam video and put them in the same player template. Another screen recorder DemoCreator can publish the screen recording as Flash movie, but can not record the webcam.

Categories