Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110

    [VB.NET] Avviare un programma all'avvio di Windows

    Salve a tutti, era molto che non tornavo su un forum di programmazione come era molto che non programmavo! , ultimamente mi stavo ingeniando per fare uno sciocchissimo programmma però, nel costruirlo ho scoperto che non riuscivo a farlo....
    E quindi mi rivolgo a chi ne sa più di me, se si può >.<!

    Descrizione programma:

    Allora Form1 contiene button1 e button2, button2 apre la form2 mentre vorrei che il button1 facesse si che cliccandolo questo programma si avviasse da solo all'avvio di Windows.

    Form2 invece conterrebbe un button1 che toglierebbe l'avvio automatico all'avvio di Windows.

    Solo che non so MINIMAMENTE da dove partire per ciò!

    Grazie.
    DakJak.

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Salve DakJak, è da un pò che non ti si sente

    Per quanto riguarda il tuo problema, basta che crei un collegamento al tuo programma nella cartella Esecuzione Automatica. Potresti anche scrivere una chiave di registro, ma è più difficile.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    ShaleN!! Ma che bello risentirti, eh si è un pò che non mi si sente (bando allo spam xD).

    Si quello dell'collegamento sono d'accordo, anche alla chiave (perquanto la chiave non sappia come farla) però un mio amico, fece un programma, che si istallava la .exe e una DLL in system32 e poi si avviava da solo il programma, come posso fare per fare qualcosa di simile?

  4. #4
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    ...come posso fare per fare qualcosa di simile?
    Non ne ho la più pallida idea: probabilmente ha scritto comunque una chiave di registro. Per sapere come scrivere una chiave di registro, leggi questo. Per sapere dove scrivere la chiave, basta cercare sul forum.

    Io comunque rimango favorevole all'idea del collegamento in Esecuzione Automatica

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    La funzionalità non si attiva copiando dei file 'da qualche parte',
    ma inserendo una chiave nel registro, qui:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run

    Se guardi sul tuo pc vedrai una parte dei programmi che partono all'avvio di Windows e vedrai quali informazioni servono.


  6. #6
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Originariamente inviato da gibra
    La funzionalità non si attiva copiando dei file 'da qualche parte'...
    Se tu, con il tuo programma, crei un collegamento nella cartella di Esecuzione Automatica, questo viene avviato quando un utente fa il login. Spesso questo è più che sufficente fare così, senza andare a modificare il registro di sistema. Provare per credere.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    gibra, grazie mi informerò meglio su ciò che mi hai detto.

    ShaleN è credo sia troppo facile dopo da rimuovere dall'esecuzione automatica >.<...

    In ogni caso grazie !

  8. #8
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Originariamente inviato da DakJak
    ...ShaleN è credo sia troppo facile dopo da rimuovere dall'esecuzione automatica >.<...
    Bè, se il tuo programma non ha scopi oscuri ma anzi è utile, non vedo perchè qualcuno debba volerlo rimuovere da Esecuzione Automatica. Naturalmente se stai scrivendo un (esempio) software per controllare il tuo computer, allora hai ragione; ma la chiave rimane pur sempre rimovibile: basta che digiti regedit.exe su Start->Esegui e puoi modificare il registro di sistema a piacere...

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    Si sono d'accordo ma molte meno persone sanno dell'esistenza di "regedit" rispetto alla cartella di esecuzione automatica >.<!

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    L'esempio sotto mostra come eseguire il Notepad all'avvio di Windows.

    NOTA:
    nell'esempio ho usato la chiave CurrentUser , che vale per il solo utente corrente.
    per tutti gli utenti si deve usare la chiave LocalMachine

    1 - apri un nuovo progetto
    2 - sul Form1 aggiungi un controllo CheckBox con il nome: chkRunAtStartupOrRemove
    3 - copia il codice sotto:


    codice:
        Imports Microsoft.Win32
    
    Public Class Form1
        Dim myApplicationName As String = ""
        Dim myApplicationPath As String = ""
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            myApplicationName = "Notepad"
            myApplicationPath = "C:\Windows\Notepad.exe"
        End Sub
    
        Public Sub RunAtStartup(ByVal ApplicationName As String, ByVal ApplicationPath As String)
            Dim CurrentUserRun As Microsoft.Win32.RegistryKey = Registry.CurrentUser.CreateSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
            With CurrentUserRun
                .OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
                .SetValue(ApplicationName, ApplicationPath)
            End With
        End Sub
    
        Public Sub RemoveFromStartup(ByVal ApplicationName As String)
            Dim CurrentUserRun As Microsoft.Win32.RegistryKey = Registry.CurrentUser.CreateSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
            With CurrentUserRun
                .OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
                .DeleteValue(ApplicationName, False)
            End With
        End Sub
    
    
        Private Sub chkRunAtStartupOrRemove_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkRunAtStartupOrRemove.CheckedChanged
    
            ' occorrono sia il nome che il percorso
            If String.IsNullOrEmpty(myApplicationName) Or String.IsNullOrEmpty(myApplicationPath) Then
                MessageBox.Show("Indicare il Nome ed il percorso dell'applicazione da avviare.", "Dati mancanti", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If
    
            ' verifico l'esistenza
            If My.Computer.FileSystem.FileExists(myApplicationPath) = False Then
                MessageBox.Show("File non trovato.")
                Exit Sub
            End If
    
            If chkRunAtStartupOrRemove.Checked = True Then
                ' aggiungo al registro
                RunAtStartup(myApplicationName, myApplicationPath)
            Else
                ' rimuovo dal registro
                RemoveFromStartup(myApplicationName)
            End If
    
        End Sub
    End Class

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.