Newsgroup: it.comp.lang.visual-basic
Titolo: Esecuzione automatica

Ragazzi come si fà a creare il collegamento nella cartella esecuzione
automatica per avviarlo con Windows ?...... veramente come si fà in generale
a creare un collegamento a un file ?
Grazie mille.
Ciao, Claudio


Beh, puoi metterlo nell'esecuzione automatica del menù avvio (nella
cartella c:\windows\menu avvio) oppure nel registro di configurazione
in questa precisa locazione:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
ma comeeeee ??? e poi ... la chiave è la stessa per tutte le versioni del
windows ( 95,98,9x,NT,2000,XP ) ?
Scusa se sono un pò impedito.
Grazie ancora.
Ciao, Claudio.

windows ( 95,98,9x,NT,2000,XP ) ?
Penso di si ... anche per mantere la compatibilità !

Salve a tutti.
Ho provato a fare un link ad un programma nella cartella "Esecuzione
automatica", e per farlo ho copiato di sana pianta un esempio da API - Guide
che è il seguente:
Declare Function fCreateShellLink Lib "VB5STKIT.DLL" (ByVal lpstrFolderName
As String, ByVal _lpstrLinkName As String, ByVal lpstrLinkPath As String,
ByVal lpstrLinkArgs As String) As Long
Private Sub Form_Load()
    'Create a shell link on your desktop
    lngresult = fCreateShellLink("..\..\Desktop", "LINK", "C:\myfile.exe",
"")
End Sub
e tutto funziona fino a quando i collegamenti li faccio sul desktop,
altrimenti non mi crea nessun collegamneto !!!!
Lavoro sotto Win2000 - VB6 SP5.
Consigli ?
Grazie a tutti.
Ciao, Claudio.

che è il seguente:
[snip]
Viva la sincerita' :-)
API Guide, a sua volta, lo ha preso dal sorgente del setup1.vbp fornito
con visual basic.
Se cerchi "CreateShellLink" nei moduli .bas del progetto troverai come
fa a fare il collegamento con il menu Programmi.
Per quanto riguarda l' esecuzione automatica, trovi un esempio qui:
Distributing Custom Icons with Your Microsoft Office 2000 Applications
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dno2kta/html/pdwiz.asp
(e' per Office, ma e' adattabilissimo)
-- 
hth, hal

Come al solito devo complimentarmi con te per la tua precisione.
Volevo sottoporti una parte di codice  ( se puoi ), per sapere se secondo te
si può migliorare.
Dunque:
Questa è la Sub che chiamo per aggiungere o togliere la mia applicazione
dalla cartella 'Esecuzione automatica':
Private Sub MDIForm1_Load()
    osinfo.dwOSVersionInfoSize = 148
    osinfo.szCSDVersion = Space$(128)
    GetVersionEx osinfo
    OpSist = osinfo.dwPlatformId
End Sub
Private Sub CaricaAvvio(Carica As Boolean)
    Dim AvvioFolder As String, AppFolder As String
    AppFolder = App.Path & "\" & App.EXEName & ".exe"
    If OpSist = 1 Then ' Piattaforma NT/2000/XP
        AvvioFolder = StartupFolder(&H7)
        ElseIf OpSist = 2 Then ' Piattaforma 95/98/9x
            AvvioFolder = StartupFolder(&H18)
    End If
    AvvioFolder = "..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.." &
Right$(AvvioFolder, Len(AvvioFolder) - 2)
    ' Aggiungo  "..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."  per
essere sicuro di partire da "C:\"
    If Carica = True Then
        ' Carica Avvio
        OSfCreateShellLink AvvioFolder, "Nome Link", AppFolder, "", -1,
"$(Programs)"
        Else
            '  Non Caricare
            If FileExists(AvvioFolder & "Nome Link.lnk") Then
                Kill (AvvioFolder & "\Nome Link.lnk")
            End If
    End If
End Sub
Public Function StartupFolder(CSIDL As Long) As String
    Dim sPath As String, pidl As Long
    If SHGetSpecialFolderLocation(MDIForm1.hwnd, CSIDL, pidl) = 0 Then
        sPath = Space$(260)
        If SHGetPathFromIDList(ByVal pidl, ByVal sPath) Then
            StartupFolder = Left(sPath, InStr(sPath, Chr$(0)) - 1)
        End If
        Call CoTaskMemFree(pidl)
    End If
End Function
Non ho messo tutta la parte di dichiarazione delle API per non essere troppo
lungo, ma così funziona.
Volevo sapere, secondo te, se c'è qualcosa che può mettere a rischio la
stabilità dell'applicazione.
Grazie ancora di tutto.
Ciao, Claudio.