Experts required. You need to have a solid experience in both Java and windows auto-load-at-start-up, which is not necessarily the same as windows services because of Java limitations. You also need to have good quality Skype audio and proficiency in English.
Skills required, summary: Java, Windows 7, UAC and access to serial (USB and COM) ports, Inno Setup Compiler or similar program, experience with and understanding of Windows services and Procrun, experience with and understanding of automatically running Java programs in background on Windows start-up
Background and task description:
We have an existing Java program (or app) which should auto-load into background during each start-up of the Windows system (target: Win 7 and Win 8). This program accesses the USB port (actually it is a COM of a converted RS232) for continuous listening hence this program requires certain admin authorisations in Windows (UAC could interfere).
This auto-loading at startup is currently implemented via a shortcut in the windows start-up folder (so it's currently not implemented as a real windows service) but this implementation isn't working in all cases (it works almost fine). Inno Setup Compiler has been used to create a single installation package (single exe file) which creates the shortcut in the windows start-up folder and installs the Java program. Of course we want to keep such single installation package (end-users cannot perform any manual installation steps, should remain automated).
This approach (current Java program and the current installation package) already works fine when starting the program manually via the shortcut in the windows start-up folder (then the Java program indeed loads in background and the icon appears in the icon tray in the bottom-right corner).
The Java program also works fine under non-admin user accounts in Win7, even with UAC on the highest level: under such user accounts, after running the installation file (made with Inno Setup) the program works fine and starts indeed automatically when the system starts. Under WinXP everything works fine aswell (under any type of user account).
Strangely, the Java program does not load automatically when starting up the Windows system under a user account which has admin rights: despite the link in the start-up folder, nothing seems to happen, no notification, no error. This behaviour (malfunctioning under such user accounts) has been reproduced on several Win 7 computers. Probably the first step in finding a solution is that you notice this behaviour (maybe there is something else with these user accounts?).
An extra characteristic of the Java program (for eternal listening to USB-COM port) is that it gets autorestarted when the program crashes. The program can indeed crash due to some legacy in the serial communication system; to this end we already have built in (Java) a crash detection mechanism so the application indeed restarts automatically (without the user noticing, all is in background).
Somewhere Procrun might already have been used in the current program and installation package so it would be good if you understand Procrun from Apache.
Who has experience in such auto-loading into background of Java apps for 64 and 32 bit systems? And the according installation package - now we used Inno Setup and ISS scripts (other can be considered)? After first installation by the user, the Java app should load into background without the user noticing: all should be automated during each system start-up.
So the user only runs the automated setup file (created with Inno Setup) and that should be it.
Also, changing the Windows UAC to the lowest level for all users is not a solution (not good practice and not solving the autoload problem).
Please note, we cannot pay you for trying to find a solution, we only pay if your solution works (ie. solves the current problem).