Programm bei Windows-Start ausführen?!?!

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von baddl19.

    Habs hiermit probiert:

    VB.NET-Quellcode

    1. Public Shared Sub AddToAutorun()
    2. Dim key As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
    3. key.SetValue(My.Application.Info.ProductName, """" & System.Reflection.Assembly.GetEntryAssembly.Location & """")
    4. End Sub

    Hab das einfach vorm Ende der Class rangehängt.
    Aber was muss ich da anpassen und wie??

    baddl19 schrieb:

    Habs hiermit probiert:

    VB.NET-Quellcode

    1. Public Shared Sub AddToAutorun()
    2. Dim key As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
    3. key.SetValue(My.Application.Info.ProductName, """" & System.Reflection.Assembly.GetEntryAssembly.Location & """")
    4. End Sub

    Hab das einfach vorm Ende der Class rangehängt.
    Aber was muss ich da anpassen und wie??

    Sorry, aber hier passt gar nichts zusammen.

    Probiers mal so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
    4. key.SetValue(My.Application.Info.ProductName, System.Reflection.Assembly.GetExecutingAssembly.Location, Microsoft.Win32.RegistryValueKind.String)
    5. key.Close()
    6. End Sub
    7. End Class

    singu schrieb:

    Probiers mal so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
    4. key.SetValue(My.Application.Info.ProductName, System.Reflection.Assembly.GetExecutingAssembly.Location, Microsoft.Win32.RegistryValueKind.String)
    5. key.Close()
    6. End Sub
    7. End Class
    habs versucht aber wenn ich dann auf den button drücke kommt ne fehlermeldung, dass er nicht in den registrierungsschlüssel schreiben kann. weiß nicht, ob es weiterhilft aber hier der fehlercode:
    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.UnauthorizedAccessException: In den Registrierungsschlüssel kann nicht geschrieben werden.
    bei System.ThrowHelper.ThrowUnauthorizedAccessException(ExceptionResource resource)
    bei Microsoft.Win32.RegistryKey.EnsureWriteable()
    bei Microsoft.Win32.RegistryKey.SetValue(String name, Object value, RegistryValueKind valueKind)
    bei WindowsApplication1.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\Baddl\Documents\Visual Studio 2008\Projects\WindowsApplication3\WindowsApplication3\Form1.vb:Zeile 4.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    ----------------------------------------
    WindowsApplication3
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/Baddl/Documents/Visual Studio 2008/Projects/WindowsApplication3/WindowsApplication3/bin/Release/WindowsApplication3.exe.
    ----------------------------------------
    Microsoft.VisualBasic
    Assembly-Version: 8.0.0.0.
    Win32-Version: 8.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    ----------------------------------------
    System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    System.Runtime.Remoting
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

    VB.NET-Quellcode

    1. Zuerst eine Funktion um den Autostarteintrag hinzu zu fügen:
    2. Private Sub AddCurrentKey(ByVal name As String, ByVal path As String)
    3. Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
    4. key.SetValue(name, path)
    5. key.Close()
    6. End Sub
    7. 'Die nächsten funktion entfernt den Key wieder
    8. Private Sub RemoveCurrentKey(ByVal name As String)
    9. Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
    10. key.DeleteValue(name, False)
    11. key.Close()
    12. End Sub
    13. 'Aufruf zum hinzufügen:
    14. AddCurrentKey(My.Application.Info.AssemblyName, System.Reflection.Assembly.GetEntryAssembly.Location)
    15. 'Aufruf zum entfernen des Eintrages
    16. RemoveCurrentKey(My.Application.Info.AssemblyName)



    GOOGLE DEIN FREUND UNT HELFER

    Alex2000 schrieb:

    VB.NET-Quellcode

    1. Zuerst eine Funktion um den Autostarteintrag hinzu zu fügen:
    2. Private Sub AddCurrentKey(ByVal name As String, ByVal path As String)
    3. Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
    4. key.SetValue(name, path)
    5. key.Close()
    6. End Sub
    7. 'Die nächsten funktion entfernt den Key wieder
    8. Private Sub RemoveCurrentKey(ByVal name As String)
    9. Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
    10. key.DeleteValue(name, False)
    11. key.Close()
    12. End Sub
    13. 'Aufruf zum hinzufügen:
    14. AddCurrentKey(My.Application.Info.AssemblyName, System.Reflection.Assembly.GetEntryAssembly.Location)
    15. 'Aufruf zum entfernen des Eintrages
    16. RemoveCurrentKey(My.Application.Info.AssemblyName)



    GOOGLE DEIN FREUND UNT HELFER
    als was muss ich registrykey deklarieren??

    singu schrieb:

    Starte mal das Programm als Administrator
    hat auch nicht geholfen
    Kann es sein, dass du entweder
    1. keine Adminrechte hast
    2. an nem Schulrechner sitzt? (warum auch immer)

    Ich kenn die Fehlermeldung nur von Schul-PCs, wenn ich versuche, da mit nem selbstgeschriebenen Tool die Uhrzeit übers Internet zu synchronisieren.

    Samus Aran schrieb:

    Kann es sein, dass du entweder
    1. keine Adminrechte hast
    2. an nem Schulrechner sitzt? (warum auch immer)

    Ich kenn die Fehlermeldung nur von Schul-PCs, wenn ich versuche, da mit nem selbstgeschriebenen Tool die Uhrzeit übers Internet zu synchronisieren.
    Nein, ich sitz an meinem PC zu Hause und das Benutzerkonto isdt das einzige und ist auch Administrator.

    Alex2000 schrieb:

    schau hier rein, das hilft dir weiter:
    Entwickler-Ressourcen und Tools, Bücher und WebCasts

    BY
    Hab ich mir angeguckt, hab auch ein paar nette Sachen gefunden, aber ich weiß nicht wo ich da ne Lösung fürmein Problem finden soll
    Es wurden schon viele Möglichkeiten vorgeschlagen

    Wenn das hier nicht funktioniert:

    VB.NET-Quellcode

    1. 'Wenn du nur als RegistryKey deklarierst muss das importiert werden
    2. Imports Microsoft.Win32
    3. Private Sub AddCurrentKey(ByVal name As String, ByVal path As String)
    4. Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
    5. key.SetValue(name, path)
    6. key.Close()
    7. End Sub
    8. 'Den Teil z.B. in Form load
    9. AddCurrentKey(My.Application.Info.AssemblyName, System.Reflection.Assembly.GetEntryAssembly.Location)


    dann liegt es entweder daran, dass du es einfach falsch einfügst oder an deinem PC!
    Nur mal so ne Frage am Rande, werden dir Fehler angezeigt bevor du debuggst und du führst es trozdem aus?^^

    Hamstinator schrieb:

    Es wurden schon viele Möglichkeiten vorgeschlagen

    Wenn das hier nicht funktioniert:

    VB.NET-Quellcode

    1. 'Wenn du nur als RegistryKey deklarierst muss das importiert werden
    2. Imports Microsoft.Win32
    3. Private Sub AddCurrentKey(ByVal name As String, ByVal path As String)
    4. Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
    5. key.SetValue(name, path)
    6. key.Close()
    7. End Sub
    8. 'Den Teil z.B. in Form load
    9. AddCurrentKey(My.Application.Info.AssemblyName, System.Reflection.Assembly.GetEntryAssembly.Location)


    dann liegt es entweder daran, dass du es einfach falsch einfügst oder an deinem PC!
    Nur mal so ne Frage am Rande, werden dir Fehler angezeigt bevor du debuggst und du führst es trozdem aus?^^
    Danke. Probier ich mal aus.

    Also,ich habe das Programm erstellt und als es dann gestrtet wurde habe ich auf den Button gedrückt und dann kam die Fehlermeldung.