begin process at 2012 02 10 20:44:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > LNKUPDATER

LNKUPDATER


 Information sur la source

Note :
Aucune note
Catégorie :Fichier / Disque Classé sous :raccourcis, modifier, changer Niveau :Débutant Date de création :16/04/2007 Date de mise à jour :31/10/2007 12:02:22 Vu / téléchargé :3 947 / 162

Auteur : VladislavIV

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Assemblage de quelques extraits de code VBS, permettant de mettre à jour tous les racourcis Windows se trouvant dans un répertoire donné (ainsi que dans tous ses sous-répertoires).

Par exemple, si vous avez des documents sous X: et un dossier avec des raccourcis s'y rattachant, et que vous déplacez les documents sous Y:, ce script vous permettra de remplacer "X:" par "Y:" dans tous les raccourcis.

Source

  • '-----------------------------------------------------
  • 'Titre : lnkUpdater
  • 'Fonction : Parcours récursif d'un répertoire pour mettre à jour les raccourcis qu'il contient (en cas de déplacement de la cible)
  • 'Auteur : Vladislav IV
  • 'Date : 14/04/2007
  • '+-----Sources-----+
  • 'http://www.vbfrance.com
  • 'http://vb.developpez.com
  • 'http://www.bellamyjc.org
  • '-----------------------------------------------------
  • '-----Fonctions et procédures-----
  • sub updateLink(cheminLnk, ancienneChaine, nouvelleChaine)
  • 'remplace toutes les occurences de ancienneChaine par nouvelleChaine dans la cible et le répertoire de travail du raccourcis
  • set lnk = WshShell.CreateShortcut(cheminLnk)
  • lnk.TargetPath = replace(lnk.TargetPath, ancienneChaine, nouvelleChaine)
  • lnk.WorkingDirectory = replace(lnk.WorkingDirectory, ancienneChaine, nouvelleChaine)
  • lnk.Save
  • end sub
  • sub updateDir(rep, ancienneChaine, nouvelleChaine)
  • 'traite les raccourcis contenus dans le répertoire, puis récursivement tous les sous-répertoires
  • Dim FSO, ssrep, racc
  • Set FSO = CreateObject("Scripting.FileSystemObject")
  • If FSO.FolderExists(rep) Then
  • 'traite les raccourcis
  • For each racc in FSO.GetFolder(rep).Files
  • if right(racc, len(racc) -InstrRev(racc, ".")) = "lnk" then 'vérifie si le fichier porte bien l'extension d'un raccourci
  • call updateLink(racc, ancienneChaine, nouvelleChaine)
  • end if
  • Next
  • 'traite les sous-répertoires
  • For each ssrep in FSO.GetFolder(rep).SubFolders
  • call updateDir(ssrep, ancienneChaine, nouvelleChaine)
  • Next
  • End If
  • end sub
  • ' ----------------------------------------------------------
  • ' Script VBS de boite de dialogue de sélection de dossier
  • ' JC BELLAMY © 2001
  • ' ----------------------------------------------------------
  • 'ce code a été modifié par mes soins, allez voir www.bellamyjc.org pour l'original.
  • function BrowseForDir()
  • BIF_returnonlyfsdirs = &H0001
  • BIF_dontgobelowdomain = &H0002
  • BIF_editbox = &H0010
  • BIF_validate = &H0020
  • BIF_browseforcomputer = &H1000
  • Dim shell, item
  • Set shell = WScript.CreateObject("Shell.Application")
  • flag = BIF_returnonlyfsdirs
  • titre = "Choisir un répertoire"
  • Set Item = shell.BrowseForFolder(0,titre,flag, dirinit)
  • If IsValue(Item) Then
  • Result = Item.Title
  • ' Test si on a sélectionné la racine d'une partition
  • recherche = InStr(1, Result, ":")
  • If recherche = 0 Then
  • 'pas racine
  • Result = Item.ParentFolder.ParseName(Item.Title).Path
  • else
  • 'racine, récupère la lettre de lecteur (avec ':')
  • Result = Mid(Result, recherche-1, 2)
  • msg = "Vous avez sélectionné une racine. Le traitement peut prendre du temps, et compromettre l'intégrité de votre ordinateur. Confirmez-vous votre choix ?"
  • ok = MsgBox(msg, vbOkCancel, "Attention !")
  • if ok = vbCancel then
  • Result = ""
  • end if
  • End If
  • else
  • Result = ""
  • End If
  • BrowseForDir = Result
  • end function
  • ' Test de validité de l'objet retourné par BrowseForFolder
  • ' On ne peut pas utiliser "IsObject", qui retourne toujours "true"
  • Function IsValue(obj)
  • Dim tmp
  • On Error Resume Next
  • tmp = " " & obj
  • If Err <> 0 Then IsValue = False Else IsValue = True
  • On Error GoTo 0
  • End Function
  • ' ----------------------------------------------------------
  • '-----Programme principal-----
  • set WshShell = WScript.CreateObject("WScript.Shell")
  • rep = BrowseForDir() 'sélection du répertoire
  • if rep <> "" then
  • ancienneChaine = InputBox("Chaine à rechercher (ne peut être vide)")
  • if ancienneChaine <> "" then
  • nouvelleChaine = InputBox("Remplacer par")
  • if ancienneChaine = nouvelleChaine then
  • MsgBox "Traitement inutile : vous avez entré deux valeurs identiques.", vbCritical
  • else
  • if MsgBox("Lancer le traitement ?", vbYesNo) = vbYes then
  • call updateDir(rep, ancienneChaine, nouvelleChaine) 'lance le traitement
  • MsgBox "Traitement effectué."
  • end if
  • end if
  • end if
  • end if
'-----------------------------------------------------
'Titre : lnkUpdater
'Fonction : Parcours récursif d'un répertoire pour mettre à jour les raccourcis qu'il contient (en cas de déplacement de la cible)
'Auteur : Vladislav IV
'Date : 14/04/2007

'+-----Sources-----+
'http://www.vbfrance.com
'http://vb.developpez.com
'http://www.bellamyjc.org
'-----------------------------------------------------


'-----Fonctions et procédures-----
sub updateLink(cheminLnk, ancienneChaine, nouvelleChaine)
	'remplace toutes les occurences de ancienneChaine par nouvelleChaine dans la cible et le répertoire de travail du raccourcis
	set lnk = WshShell.CreateShortcut(cheminLnk)
	lnk.TargetPath = replace(lnk.TargetPath, ancienneChaine, nouvelleChaine)
	lnk.WorkingDirectory = replace(lnk.WorkingDirectory, ancienneChaine, nouvelleChaine)
	lnk.Save
end sub


sub updateDir(rep, ancienneChaine, nouvelleChaine)
	'traite les raccourcis contenus dans le répertoire, puis récursivement tous les sous-répertoires
	Dim FSO, ssrep, racc
	Set FSO = CreateObject("Scripting.FileSystemObject")
	If FSO.FolderExists(rep) Then
		'traite les raccourcis
		For each racc in FSO.GetFolder(rep).Files
			if right(racc, len(racc) -InstrRev(racc, ".")) = "lnk" then	'vérifie si le fichier porte bien l'extension d'un raccourci
				call updateLink(racc, ancienneChaine, nouvelleChaine)
			end if
		Next
		
		'traite les sous-répertoires
		For each ssrep in  FSO.GetFolder(rep).SubFolders
			call updateDir(ssrep, ancienneChaine, nouvelleChaine)
		Next
	End If
end sub

' ----------------------------------------------------------
' Script VBS de boite de dialogue de sélection de dossier
' JC BELLAMY © 2001
' ----------------------------------------------------------
'ce code a été modifié par mes soins, allez voir www.bellamyjc.org pour l'original.
function BrowseForDir()
	BIF_returnonlyfsdirs   = &H0001
	BIF_dontgobelowdomain  = &H0002
	BIF_editbox            = &H0010
	BIF_validate           = &H0020
	BIF_browseforcomputer  = &H1000

	Dim shell, item
	Set shell = WScript.CreateObject("Shell.Application")
	flag = BIF_returnonlyfsdirs 
	titre = "Choisir un répertoire"
	Set Item = shell.BrowseForFolder(0,titre,flag, dirinit)
	If IsValue(Item) Then
		Result = Item.Title
		' Test si on a sélectionné la racine d'une partition 
		recherche = InStr(1, Result, ":")
		If recherche = 0 Then
			'pas racine
			Result = Item.ParentFolder.ParseName(Item.Title).Path
		else
			'racine, récupère la lettre de lecteur (avec ':')
			Result = Mid(Result, recherche-1, 2)
			msg = "Vous avez sélectionné une racine. Le traitement peut prendre du temps, et compromettre l'intégrité de votre ordinateur. Confirmez-vous votre choix ?"
			ok = MsgBox(msg, vbOkCancel, "Attention !")
			if ok = vbCancel then
				Result = ""
			end if
		End If
	else
		Result = ""
	End If
	BrowseForDir = Result
end function

' Test de validité de l'objet retourné par BrowseForFolder
' On ne peut pas utiliser "IsObject", qui retourne toujours "true"
Function IsValue(obj)
	Dim tmp
	On Error Resume Next
	tmp = " " & obj
	If Err <> 0 Then IsValue = False Else IsValue = True
	On Error GoTo 0
End Function
' ----------------------------------------------------------


'-----Programme principal-----
set WshShell = WScript.CreateObject("WScript.Shell")
rep = BrowseForDir()	'sélection du répertoire
if rep <> "" then
	ancienneChaine = InputBox("Chaine à rechercher (ne peut être vide)")
	if ancienneChaine <> "" then
		nouvelleChaine = InputBox("Remplacer par")
		if ancienneChaine = nouvelleChaine then
			MsgBox "Traitement inutile : vous avez entré deux valeurs identiques.", vbCritical
		else
			if MsgBox("Lancer le traitement ?", vbYesNo) = vbYes then
				call updateDir(rep, ancienneChaine, nouvelleChaine)	'lance le traitement
				MsgBox "Traitement effectué."
			end if
		end if
	end if
end if

 Conclusion

Si vous spécifiez une destination qui n'existe pas (par exemple, changer "X:\" pour "toto:\"), les raccourcis seront modifiés, mais à l'appel ils reviendront à leur cible initiale.

Je n'ai jamais essayé ce script sur une racine... Quoi qu'il en soit, testez-le d'abord sur des fichiers et raccourcis bidon !

A la base, j'ai assemblé ce script pour mettre à jour tous les raccourcis dans "Documents and Settings", après le déplacement de "Program Files" sur une autre partition. Mais tout ceci fera prochainement l'objet d'un article sur technos-sources.com !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

31 octobre 2007 12:02:22 :
Retrait de mon nom de la source pour éviter le harcèlement.

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) CHIFFRE DE VIGENÈRE

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [VBS] SHORTCUTREMOVER OUTIL POUR SUPPRIMER AUTOMATIQUEMENT L... par hackoo
Source .NET (Dotnet) SETFILEDATE par hugoclavet
Source avec Zip CHANGER LA RESOLUTION AFFICHAGE WINDOWS (+ COULEUR + FREQUE... par newtechnologie
CHANGER LA DATE par Lolo
CHANGER LA RESOLUTION DE WINDOWS par Nix

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Changer priorité processus (pas le current) [ par Stephane ] Salut a tous Voila, on trouve partout sur internet, des sources pour modifier la priorit&#233; de l'appli en cours d'execution, mais moi j'aurais bes Comment changer toutes le couleurs des formes [ par Alucard666 ] Bonjour à tous,Avant toute chose :Je suis nouveau sur ce site et je dois dire qu'il est trés complet et qu'il permet d'avoir des sources fiables qui p progressbar changer la couleur [ par bidouille007 ] Bonjour Je cherche en vain le moyen de modifier la couleur de la barre de progression au style marquee mais que je fasse je n'arrive pas à mettre la modifier l'octet d'un fichier [ par Zeroc00l ] Salut all !1) Merci de lire cette question.2)J'aimerais savoir comment modifier un nombre n d'octet(s) tel que le premier octet à changer soit le ieme modifier l'octet d'un fichier [ par Zeroc00l ] Salut all !1) Merci de lire cette question.2)J'aimerais savoir comment modifier un nombre n d'octet(s) tel que le premier octet à changer soit le ieme Changer le nom d'une Feuille Excel [ par nagstef ] Bonjour !J'utilise cette formule afin de modifier ou r&#233;cup&#233;rer des donn&#233;es de diff&#233;rentes cellules d'un classeur Excel.classeur.wo Changer DATE de Windows [ par fabienfs ] Bonjour, Je cherche à pouvoir modifier la date de Windows en VB.Net. Le but n'est donc pas de modifier la date de Windows dans mon appli mai bien mod Modifier Back color... [ par TomTom27 ] BonjourJe désire changer la couleur de fond, d'une ligne de ma list view, je n'arrive a changer que tout les back color de toutes les lignes.Merci changer les droits des fichiers ? [ par le1scorpion1noir ] salut a tous je voulais savoir comment je peux modifier les droits d'un fichier a laide de Visual basic pour qu'on peux pas modifier ce fichier que s changer l'icone d'une feuille vb6 et celui d'un controle commadeboutton [ par cophy ] bonjour s'il vous plait comment on procède pour changer l'icone d'une feuille vb6? je voudrais aussi afficher une icone sur un controle commande butt


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,100 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales