windows - Forsinket start med RunOnce

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et program, som jeg vil starte ved Windows start. Så jeg skrev programmet til registreringsværdien SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce. Programmet kører straks, når Windows starter.


Det kører dog programmet, inden nogen af ​​de andre processer startes. Jeg vil gerne have mit program start efter mit skrivebord har startet, og alle de andre systemprocesser er startet. Hvordan ville jeg gøre det her?


Rediger: Så jeg har tilføjet en forsinkelse i mit program. Ingen af ​​processerne som desktop start før efter at mit program har kørt, uanset hvilken form for forsinkelse jeg lægger i mit program.

Bedste reference


Ifølge Microsoft: [1]



  Med undtagelse af HKEY\_LOCAL\_MACHINE ... \ RunOnce-tasten indlæses alle taster og deres indtastninger asynkront. Derfor kan alle indtastninger i RunServices og RunServicesOnce-tasterne muligvis køre på samme tid.

  
  Indlæg i HKEY\_LOCAL\_MACHINE ... \ RunOnce-tasten lægges synkront i en ubestemt rækkefølge.

  
  Fordi HKEY\_LOCAL\_MACHINE ... \ RunOnce-tasten er indlæst synkront, skal alle indlæg afslutte indlæsning før HKEY\_LOCAL\_MACHINE ... \ Run, HKEY\_CURRENT\_USER ... \ Run, HKEY\_CURRENT\_USER ... \ RunOnce og Startup Folder-indgange kan indlæses .



Det betyder også, at hvis du laver et program, der sover (INFINITE) i RunOnce-tasten, forhindrer det din maskine i at starte op? Interessant.


Brug blot en af ​​de andre nøgler, der er nævnt i artiklen. Eller hvis du har brug for semantikken til RunOnce, skal du bruge et hjælperprogram, der udløber efter lanceringen af ​​det rigtige program.