Beschreibung:
Diese Methode schreibt die angegebene Datei in den Autostart des aktuellen Nutzers, sodass diese beim Anmelden des Nutzers ausgeführt wird.
private bool SchreibeinAutostart(string dateipfad)
{
try
{
string user = Environment.UserDomainName + "\\" + Environment.UserName;
System.Security.AccessControl.RegistrySecurity rs = new System.Security.AccessControl.RegistrySecurity();
rs.AddAccessRule(new System.Security.AccessControl.RegistryAccessRule(user,
System.Security.AccessControl.RegistryRights.WriteKey | System.Security.AccessControl.RegistryRights.ChangePermissions,
System.Security.AccessControl.InheritanceFlags.None,
System.Security.AccessControl.PropagationFlags.None,
System.Security.AccessControl.AccessControlType.Allow));
RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\");
key.SetValue(dateipfad.Remove(0,dateipfad.LastIndexOf(@"\")+1), dateipfad);
return true;
}
catch (Exception)
{
return false;
}
}
Schlagwörter: Autostart automatisch starten bei windows autorun von selbst
Inhaltlich genau das gleiche, jedoch hab ich mir mal die Mühe gemacht, und es etwas leserlicher gestaltet:
private Boolean SchreibeinAutostart( String dateipfad )
{
try
{
String samAccountName;
{
var currentWindowsIdentity = WindowsIdentity.GetCurrent( );
if ( currentWindowsIdentity == null )
{
return false;
}
samAccountName = currentWindowsIdentity.Name;
}
var registrySecurity = new RegistrySecurity( );
{
registrySecurity.AddAccessRule( new RegistryAccessRule( samAccountName,
RegistryRights.WriteKey | RegistryRights.ChangePermissions, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow ) );
}
var targetRegistryKey = Registry.CurrentUser.CreateSubKey( "Software\\Microsoft\\Windows\\CurrentVersion\\Run\\" );
if ( targetRegistryKey == null )
{
return false;
}
targetRegistryKey.SetValue( dateipfad.Remove( 0, dateipfad.LastIndexOf( @"\" ) + 1 ), dateipfad );
}
catch ( Exception )
{
return false;
}
return true;
}
Ich würde aber empfehlen, lieber mit der void Rückgabe und entsprechenden Exceptions zu arbeiten.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code