how can I run an app automatic after restart? (by c# code) I create A new string in 'runOnce' key in registry with the path of the App. the OS run this APP before it load the OS my problem is: My APP loads but explorer doesn't load, after I close my APP, explorer loads I restart the computer in APP, and after restart I want that my APP reopen
how can I run an app automatic after restart?
is putting a link to your app in the startmenu->autostart folder not working? –
Pizzicato
@juergend I believe he means restart of the application, not OS. –
Fourpenny
What is your problem? RunOnce is the correct solution and according to your question you already use it... –
Pledge
Taking everything into account... Doesn't the term "restart" mean that the app is already running? –
Calloway
He means the restart of the OS. –
Pedigo
@Daniel Hilgarth - my problem is: My APP loads but explorer doesn't load, after I close my APP, explorer loads –
Kinchen
@sari: that's a real essential piece of information. Please update your question with it. –
Pledge
When you click restart from your app, make the following modifications to the registry:
Create an entry in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
registry branch.
Use
Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName");
to create an entry.
And
RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName", true);
myKey.SetValue("YourAppName", "AppExecutablePath", RegistryValueKind.String);
to set the run path.
After the system has restarted, your app starts and removes the restart entry by calling this:
Registry.LocalMachine.DeleteSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName");
I mean to start an app after the OS restart, but I want that it do it only if I do restart by an APP ( not start an APP always) –
Kinchen
@sarik just use the technique descriped by , plus add the entry when you're shutting down from withhin your application and during application startup delete that RegistryKey –
Intercostal
I have updated an answer to reflect your need to cancel consequent app restarts after the first restart. –
Pedigo
wouldnt the runonce key be better? is there some reason you did not choose that? –
Busch
You should not create a SubKey, only need to set the value inside of Run. –
Malan
where to write these lines? –
Noonday
The above example lines are c# code. You write them in your .net app to enable auto restart via registry manipulations. –
Pedigo
My favorite answer out of all of the others :) –
Scantling
It seems like your best bet would be to add your program to RunOnce, instead of Run. That way it will be started after the next reboot, but you won't have to worry about erasing the key afterwards.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
"RunOnce" is usually a bad idea because if some unforeseen issue happens and the key is automatically removed, you've lost the ability to run whatever you added in the first place. Better to use "Run" and delete it later after some validation. –
Malan
Using that logic, Run would also be a bad idea since if some unforeseen issue happens the key is not removed then your program would run every time the computer restarts. "RunOnce" has less maintenance since you just write it and forget it, "Run" allows for more control since you can remove it once it is no longer needed instead of re-writing it if the problem still exists after restart. I would call this a personal taste issue. –
Ceuta
I personally use Run with flag files or a DB to track it's progress. I can see your point, it's just difficult if the app is no longer being executed. Also, depends on how critical the app is on being executed (like mine). –
Malan
This is a better answer as you should not create a SubKey. Also this will automatically dispose.
string runKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(runKey, true))
{
key.SetValue("MyProgram", @"C:\MyProgram.exe");
}
© 2022 - 2024 — McMap. All rights reserved.