thc24
Messages postés5Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention28 juin 2005
-
28 juin 2005 à 17:27
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
28 juin 2005 à 20:34
Donc j'ai un fichier .exe et je voudrais qu'il souvre directement au démarage de windows
donc si je l'envoi a quelqu'un je voudrais qui ce mette tout seul dans le dossier de démarage
si vous ne comprenez pas ce que je veux dire dite le moi
je pense être claie mais je ne le suis peut être pas
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 28 juin 2005 à 20:34
Salut,
Si j'ai bien compris, tu veux juste que ton exe se colle dans le démarrage de l'ordi dès la 1ère exécution ?
Je ne connais pas tes motivations. Avant, j'aurais pensé que c'était pour des motifs pas très avouables et d'aucun(e)s m'ont fait remarqué que j'étais trop strict. Quelquepart, c'était vrai.
Finalement, j'ai évolué, pourquoi refuserais-je de redistribuer une connaissance apprise de Microsoft lui-même ? D'autant plus que celui qui lance l'exécution d'une pièce jointe ou de n'importe quel exe sans savoir d'où elle/il provient et ce qu'elle/il est sensé(e) faire est un GROS BLAIREAU. Et les FireWall et autres AntiVirus (surtout s'ils ne sont pas à jour) n'éviteront jamais la CONNERIE du blaireau moyen.
De toutes façons, ce n'est pas avec VB qu'on peut faire le plus de mal.
Alors, voilà un chti code qui va permettre à ton exe de se copier dans le dossier de démarrage (98 ou xp) de l'utilisateur (même s'il l'exécute comme pièce jointe d'un e-mail). C'est du tout vb6 mais on peut l'adapter en vb.net.
Bien sùr, si ton prog utilise des ocx ou dll non présentes sur le PC cible, ça ne fonctionnera pas sans une install de ces dll et ocx, voir la réponse de crenaud76. Il y a des solutions mais pour l'instant, je ne m'étendrai pas la-dessus.
Autre chose, ce code ne fonctionne qu'en exécution. Pour le tester, crée un exe et lance-le. Garantie : tel qu'il est il ne te pourrira pas la vie.
Copie ce qui suit dans ton module principal, dans les propriétés de ton projet\objet de démarrage tu mets "sub main" et, à la place de '... dans le sub main, tu ouvres ta form principale (form.show) ou tu exécutes ce que tu veux :
' Récipient pour un item
Private Type SHITEMID
cb As Long
abID As Byte
End Type
' Récipient pour une liste d'items
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
' Fonction API pour récupérer l'ID d'un dossier spécial de Windows
Private Declare Function SHGetSpecialFolderLocation _
Lib "shell32.dll" _
( _
ByVal hwndOwner As Long, _
ByVal nFolder As Long, _
pidl As ITEMIDLIST _
) As Long
' Fonction API pour récupérer le chemin du dossier spécial
Private Declare Function SHGetPathFromIDList _
Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
( _
ByVal pidl As Long, _
ByVal pszPath As String _
) As Long
Private Function GetSpecialfolder(CSIDL As Long) As String
Dim IDL As ITEMIDLIST
Dim path As String
' Récupération du chemin du dossier spécial choisi
If SHGetSpecialFolderLocation(100, CSIDL, IDL) = 0 Then
path = Space$(512) 'init du buffer
Call SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal path)
' On enlève les chr$(0)'s inutiles
GetSpecialfolder = Split(path, Chr$(0))(0)
End If
End Function
Sub Main()
Dim PathFicArrivee As String
' path où doit arriver l'exe
PathFicArrivee = GetSpecialfolder(&H7) & "" & App.EXEName & ".exe"
' s'il n'est pas déjà là, on le copie
If Dir(PathFicArrivee) = "" Then FileCopy "." & App.EXEName & ".exe", PathFicArrivee
'...
End Sub
Si ce post n'est pas supprimé par un admin aussi chatouilleux que j'étais avant, bonne prog !
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 28 juin 2005 à 18:53
C'est au niveau de ton paquet d'install qu'il faut voir le problème, pas au niveau de ton soft en li-même. Le créateur de pack d'isntall fourni avec Vb ne permet pas de faire cela, alors je te conseille d'en utiliser un autre, comme InnoSetUp et son compagnon ISTools. Notre ami Dark Sidious a un tutor sur ce soft sur son site : www.progotop.com