Pourquoi je dois lancer mon programme 2 fois ?

Signaler
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010
-
Tyrell2
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010
-
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

Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
6
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.
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010

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)
Messages postés
114
Date d'inscription
lundi 15 avril 2002
Statut
Membre
Dernière intervention
1 juillet 2011

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
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010

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)