none
[vb.net]Copiare un file in esecuzione automatica RRS feed

  • Domanda

  • salve,

    come faccio a copiare un eseguibile nella cartella esecuzione automatica di XP in modo tale che questo viene poi eseguito in modo automatico all'avvio del sistema operativo?

    domenica 16 gennaio 2011 16:01

Risposte

  • Ciao Gabriele97,

    come ti indicava Massimo la soluzione non è certo delle più eleganti.

    comunque per aggiungere in Esecuzione Automatica il tuo file startserver.exe puoi utilizzare il codice che ti ho indicato nel link della prima risposta.

     

    Imports IWshRuntimeLibrary
    Public Class Form1
    
      Dim StartupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup)
      Dim shortcutFilePath As String = StartupFolder & "\MyShortcut.lnk"
    
      ' Add/create the shortcut to the Startup folder
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim WshShell As WshShellClass = New WshShellClass
        Dim MyShortcut As IWshRuntimeLibrary.IWshShortcut
        ' The shortcut will be created in the Startup folder
        MyShortcut = CType(WshShell.CreateShortcut(shortcutFilePath), IWshRuntimeLibrary.IWshShortcut)
        'Specify target file full path
        MyShortcut.TargetPath = Application.StartupPath & "\YourAppName.exe"
        ' e.g. MyShortcut.TargetPath = "C:\WINDOWS\system32\calc.exe"
        MyShortcut.Save()
      End Sub
    
      'Remove the shortcut from the Startup folder
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If IO.File.Exists(shortcutFilePath) Then
          IO.File.Delete(shortcutFilePath)
        End If
      End Sub
    End Class
    
    
    

     Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    • Contrassegnato come risposta Gabriele97 domenica 16 gennaio 2011 18:08
    domenica 16 gennaio 2011 17:22
    Moderatore

Tutte le risposte

  • Sembra che Gabriele97 abbia detto :

    salve,

    come faccio a copiare un eseguibile nella cartella esecuzione automatica di XP in modo tale che questo viene poi eseguito in modo automatico all'avvio del sistema operativo?

    Il percorso della cartella dell'avvio automatico la puoi recuperare utilizzando la seguente istruzione:

    Dim path = Environment.GetFolderPath(Environment.SpecialFolder.Startup)

    Per la copia del file puoi utilizzare il metodo Copy della classe File.

    domenica 16 gennaio 2011 16:17
    Moderatore
  • Ciao Gabriele97,

    devi aggiungere al Folder startup un collegamento al tuo file eseguibile.

    trovi un esempio di come aggiungere (e rimuovere) tale collegamento a questo link

    http://social.msdn.microsoft.com/Forums/en-IE/vbgeneral/thread/de45c3b4-ac9c-4b24-82b5-4ad5fd33379d

     

    Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    domenica 16 gennaio 2011 16:20
    Moderatore
  • ok, grazie per la risposta. Quello che voglio fare è creare un'applicazione. Questa applicazione esegue semplicemente questa istruzione nell'evento load

    Process.Start("C:\app\app.exe")
    

    poi app.exe e l'applicazione che verrà quindi eseguita all'avvio.

    giusto?

    domenica 16 gennaio 2011 16:29
  • ok, grazie per la risposta. Quello che voglio fare è creare un'applicazione. Questa applicazione esegue semplicemente questa istruzione nell'evento load

     

    Process.Start("C:\app\app.exe")
    
    

     

    poi app.exe e l'applicazione che verrà quindi eseguita all'avvio.

    giusto?

    Ciao Gabrile97,

    perdonami ma non ho capito nulla :-(

    Se vuoi far eseguire in 'Esecuzione Automatica' APP.EXE devi creare un collegamento ad APP.EXE e posizionarlo nel Folder di StartUp di Windows

    Mi sfugge come antra in gioco l'altra applicazione di cui parli e di cui non capisco il significato ...s cusa sicuramente è un mio limite.

     

    Tieni presente che inserire una applicazione nel folder di starup è solitamente compito del SoftWare che utilizzi per creare il pacchetto di installazione che poi utilizzerai per installare il tuo  programma non di un programma.

    Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    domenica 16 gennaio 2011 16:40
    Moderatore
  • allora, praticamente ho creato un'applicazione per un mio amico che ha bisogno di creare una chat. Bene, quindi si va a creare il lato server e client. Lui editerà il lato client, il lato server è  già bello e pronto. Bene, li ho detto che bisogna avviare il Server per far funzionare il Client. Visto che lui è un po' sbadato, mi ha detto che attraverso una voce di menù, voleva che si andasse ad avviare il server all'avvio del PC. bene, ora cosa devo fare. Nella cartella di questo programma è presente.

    client.exe

    server.exe

    startserver.exe

     

    startserver è un semplice applicativo di linea di comando, che va ad avviare in background il file server.exe

    quindi

    Process.Start("C:\app\server.exe")
    
    ora quindi, attraverso quella voce di menù, vado a copiare nella cartella esecuzione automatica di XP, il file startserver.exe

    domenica 16 gennaio 2011 17:03
  • Gabriele97 ha detto questo domenica :

    allora, praticamente ho creato un'applicazione per un mio amico che ha bisogno di creare una chat. Bene, quindi si va a creare il lato server e client. Lui editerà il lato client, il lato server è  già bello e pronto. Bene, li ho detto che bisogna avviare il Server per far funzionare il Client. Visto che lui è un po' sbadato, mi ha detto che attraverso una voce di menù, voleva che si andasse ad avviare il server all'avvio del PC. bene, ora cosa devo fare. Nella cartella di questo programma è presente.

    client.exe

    server.exe

    startserver.exe

     

    startserver è un semplice applicativo di linea di comando, che va ad avviare in background il file server.exe
    quindi


    Process.Start("C:\app\server.exe")

    ora quindi, attraverso quella voce di menù, vado a copiare nella cartella esecuzione automatica di XP, il file startserver.exe

    Attento perchè in questo modo non viene sempre avviata l'applicazione ma solo quando l'utente si connette. Per un server sarebbe opportuno creare un servizio di windows, in grado di partire anche senza che l'utente sia connesso o un web service.

    domenica 16 gennaio 2011 17:13
    Moderatore
  • Ciao Gabriele97,

    come ti indicava Massimo la soluzione non è certo delle più eleganti.

    comunque per aggiungere in Esecuzione Automatica il tuo file startserver.exe puoi utilizzare il codice che ti ho indicato nel link della prima risposta.

     

    Imports IWshRuntimeLibrary
    Public Class Form1
    
      Dim StartupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup)
      Dim shortcutFilePath As String = StartupFolder & "\MyShortcut.lnk"
    
      ' Add/create the shortcut to the Startup folder
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim WshShell As WshShellClass = New WshShellClass
        Dim MyShortcut As IWshRuntimeLibrary.IWshShortcut
        ' The shortcut will be created in the Startup folder
        MyShortcut = CType(WshShell.CreateShortcut(shortcutFilePath), IWshRuntimeLibrary.IWshShortcut)
        'Specify target file full path
        MyShortcut.TargetPath = Application.StartupPath & "\YourAppName.exe"
        ' e.g. MyShortcut.TargetPath = "C:\WINDOWS\system32\calc.exe"
        MyShortcut.Save()
      End Sub
    
      'Remove the shortcut from the Startup folder
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If IO.File.Exists(shortcutFilePath) Then
          IO.File.Delete(shortcutFilePath)
        End If
      End Sub
    End Class
    
    
    

     Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    • Contrassegnato come risposta Gabriele97 domenica 16 gennaio 2011 18:08
    domenica 16 gennaio 2011 17:22
    Moderatore
  • grazie! fatto!
    domenica 16 gennaio 2011 18:08