myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE7
   » Gadget für Vista
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» dotnetjob.de
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » Programm in Autostart schreiben
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Programm in Autostart schreiben

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
UZI
myCSharp.de-Mitglied

Dabei seit: 27.02.2011
Beiträge: 156
Entwicklungsumgebung: Visual Studio Professional


UZI ist offline

Programm in Autostart schreiben

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Beschreibung:
Diese Methode schreibt die angegebene Datei in den Autostart des aktuellen Nutzers, sodass diese beim Anmelden des Nutzers ausgeführt wird.

C#-Code:
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
15.01.2012 19:55 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt Abt ist männlich
myCSharp.de-Team (Moderation)

images/avatars/avatar-2981.png


Dabei seit: 20.07.2008
Beiträge: 3.397
Entwicklungsumgebung: VS2010, VS2012, ReSharper
Herkunft: Stuttgart


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Inhaltlich genau das gleiche, jedoch hab ich mir mal die Mühe gemacht, und es etwas leserlicher gestaltet:

C#-Code:
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.
16.01.2012 08:34 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Jahr.
Der letzte Beitrag ist älter als ein Jahr.
Antwort erstellen


© Copyright 2003-2013 myCSharp.de-Team. Alle Rechte vorbehalten. 22.05.2013 23:03