java - Kør programmet automatisk, når systemet kommer fra dvale

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg ønsker at starte min ansøgning automatisk for alle brugere, når systemet starter fra shutdown eller dvale (jeg vil ikke have brugeren manuelt klik på mit exe ikon for at køre applikation). Hvis det samme system bruges af to brugere, bør det arbejde for begge brugere.


Jeg har forsøgt at følge, men det virker ikke for alle brugere, heller ikke for at starte fra dvale:



  1. Jeg havde tilføjet min exec-genvej i shell: opstart

  2. Jeg bruger også batchfilkode som denne REG ADD HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run/v JApp/t REG\_SZ/d/h '\% ~ MoodOMeter.exe'
    nu et problem, som jeg får, er, at det kun virker for den nuværende bruger, dvs. hvis det registreres på startmappen på userid 1, så løber det ikke til userid 2, og det sidste, der ikke virker, er at hvis systemet starter fra dvaletid, så vil det ikke Kør automatisk, kan nogen hjælpe mig med dette problem


Bedste reference


Du kan bruge Task Scheduler til at udløse en handling på genoptagelsessystemet. [1]


Men Task Scheduler har sin begrænsning (i forbindelse med dit spørgsmål).


Du kan opsætte opgaven i to tilstande:



  • For en bestemt konto med 'Kør, om brugeren er logget på eller ej' . For det skal du kende et kodeord for en lokal konto. Og opgaven løber med privilegier af den konto, så ikke med privilegier for den logget på konto. Det ville være problem, hvis du skal skrive filer eller registreringsdatabasen i brugerprofil. For ikke at nævne, at der kan være flere logget på brugere på samme tid (opgaven vil kun blive kørt for en af ​​dem).

  • Med 'Kør når bruger er logget på' , har du ikke brug for adgangskoden, og opgaven køres med korrekte rettigheder, men kun for den konto, der oprettede opgaven. Så hvis du Opret opgaven i installationsprogrammet, den ville kun blive henrettet til den konto, der kører installationsprogrammet. For at løse dette kan du gøre selve applikationen oprette opgaven, når den udføres (og opgaven eksisterer endnu ikke).



Hvis ovenstående begrænsning er ok, så er det en løsning.





En anden måde er at holde din applikation kørende i baggrunden og overvåge systemet for at udløse den ønskede handling ved genoptagelse.