Pourquoi je dois lancer mon programme 2 fois ?

Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010 - 11 juin 2008 à 16:05
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010 - 12 juin 2008 à 12:16
bonjour,

j'ai developpé ce petit programme que je lance à partir d'un batch et qui se contente d'effacer le raccourci internet explorer de la quicklaunch sur tous les profils d'un poste.

ce que je ne comprend pas: quand j'execute le batch une 1ere fois il ne se passe rien, mais si je le re execute une deuxieme fois il efface bien le raccourci comme je lui demande...
help et merci d'avance si vous connaissez une raison à cela

mon code:

Try

Dim ListeProfil
As
String() = Directory.GetDirectories(
"C:\Documents and Settings")

For
Each Profil
As
String
In ListeProfil

Dim raccourci
As
New FileInfo(Profil &
"\Application Data\Microsoft\Internet Explorer\Quick Launch\Démarrer Internet Explorer.lnk")

If raccourci.Exists =
True
Thenraccourci.Delete()

End
If

Next

Catch ex
As ExceptionMsgBox(ex.Message)

End
Try

_____________
 (débutant inside)

4 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
11 juin 2008 à 17:17
Aah ce bon vieux "If Condition = True Then", tout le monde y passe ;-)
("If raccourci.Exists =
True Then
" est strictement équivalent à "If
raccourci.Exists Then
")

Tu es sur que ce n'est pas simplement un problème de rafraichissement ?
Essaie de l'exécuter une fois, puis chippote un peu, rafraichis le bureau voir s'il ne le vire pas, peut-être que c'est le second accès au dossier (2e exécution) qui déclencherait ce rafraichissement...

Sinon tu n'as qu'à l'exécuter deux fois dans le batch :D
(Bon ca va je sors...)
<hr size="2" width="100%" />Julien.
0
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
11 juin 2008 à 17:45
ok admettons que le = true ne soit pas necessaire... c'est de tout façon pas bien grave...

mon prob est idem si j'utilise my.computer.filesystem.deletefile(...)

ça me gave d'etre bloqué par ce genre de connerie
_____________
 (débutant inside)
0
aserf Messages postés 114 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 juillet 2011
12 juin 2008 à 11:06
Salut,

as tu essayer de temporiser entre chaque suppresion ?
avec
Application.DoEvents()
ou
System.Threading.Thread.Sleep(200)

est ce que tu passe bien ans chaque "Exists" ?

a++
seb

Développement Rapide PHP / VBNET -> www.database2code.com
0
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
12 juin 2008 à 12:16
tu as vu juste aserf.
je l'avais deja trouvé depuis hier soir en testant effectivement de rajouter un sleep entre chaque profil utilisateur,
j'ai également affiné en demandant au programme de zapper les profils "all users" + "localservice" + "networkservice"
berf sujet clos !
merci.
_____________
 (débutant inside)
0
Rejoignez-nous