Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Liste des logiciels installés | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Liste des logiciels installés Dim 11 Nov 2018 - 19:53 | |
| Liste des logiciels installés sur le PC, récupérée dans le registre avec regedit.exe. Ça peut servir en cas de réinstallation, ou autre chose. Les chemins des fichiers temporaires de manoeuvre (ici hébergés dans Z:\) sont à adapter. Avec un exemple d'appel de la sub: - Code:
-
DIM q$,s$,fr$,a$,ls% q$ = CHR$(34) fr$ = "Z:\Lst64.txt"
ListeProg(64,fr$)
WIDTH 0,400: HEIGHT 0,SCREEN_Y-30: LIST 10: FULL_SPACE 10 s$ = q$+"DisplayName"+q$: ls% = LEN(s$) FILE_OPEN_READ 1,fr$ WHILE FILE_EOF(1) = 0 FILE_READLN 1,a$ IF LEFT$(a$,ls%) = s$ ITEM_ADD 10,RIGHT_POS$(a$,15) END_IF END_WHILE FILE_CLOSE 1 SORT 10: ' tri alphabétique du résultat END ' ============================================================================== SUB ListeProg(typ%,fr$) ' Liste des programmes installés sur le PC -> fr$ (fichier texte .txt) ' typ% = 32: système 32 bits, typ% = 64: système 64 bits DIM_LOCAL r$,q$,fm$,fs$ fm$ = "Z:\XY.txt": ' fichier temporaires, à ajuster fs$ = "Z:\Unix2dos.vbs": ' idem q$ = CHR$(34) IF typ% = 32 r$ = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ELSE r$ = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" END_IF EXECUTE_WAIT "regedit.exe|/E "+fr$+" "+q$+r$+q$ ' Conversion du résultat format Unix en format Dos FILE_OPEN_WRITE 1,fs$ FILE_WRITELN 1,"Do Until WScript.StdIn.AtEndOfStream" FILE_WRITELN 1," WScript.StdOut.WriteLine WScript.StdIn.ReadLine" FILE_WRITELN 1,"Loop" FILE_CLOSE 1 EXECUTE_WAIT "cmd.exe|/c TYPE "+q$+fr$+q$+" | cscript //NoLogo "+fs$+" >"+q$+fm$+q$ FILE_DELETE fr$: FILE_COPY fm$,fr$: FILE_DELETE fm$ FILE_DELETE fs$ END_SUB ' ============================================================================== Ça peut aussi donner l'idée de faire un peu de ménage... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Liste des logiciels installés Lun 12 Nov 2018 - 14:13 | |
| Une autre méthode (comme je vois que la précédente a soulevé l'enthousiasme général), avec Powershell, pour obtenir la liste détaillée des applications avec leurs caractéristiques. L'inconvénient, c'est que le temps de traitement est beaucoup plus long (plusieurs minutes), mais bon, on ne le fait pas non plus toutes les 5 minutes. Il y a avec Powershell la possibilité d'obtenir aussi la liste brute (voir dans la sub), mais c'est bien plus rapide avec regedit (ci-dessus), alors sans intérêt. Avec un exemple d'appel, et en plus la mesure du temps écoulé... Là aussi il faut adapter les chemins des fichiers provisoires à sa config. - Code:
-
DIM f$,t1$,t2$ f$ = "Z:\Liste.txt" t1$ = TIME$ Listprog(f$) t2$ = TIME$ Duree(t1$,t2$) CAPTION 0, "Durée: "+CLIPBOARD_STRING_PASTE$ WIDTH 0,400: HEIGHT 0,SCREEN_Y-30: LIST 10: FULL_SPACE 10 FILE_LOAD 10,f$ END ' ============================================================================== SUB Listprog(f$) ' Liste détaillée des programmes installés sur le PC DIM_LOCAL ll%,a$,fm$,fs$,q$ fm$ = "Z:\XY.txt": ' fichier temporaires, à ajuster fs$ = "Z:\Unix2dos.vbs": ' idem q$ = CHR$(34) ' ll% = 1: Liste détaillée ' ll% = 2: Liste brute ll% = 1 IF ll% = 1: ' Liste détaillée a$ = "Get-WmiObject -Class Win32_Product" ELSE: ' uniquement les noms a$ = "Get-WmiObject -Class Win32_Product | Select-Object -Property Name" END_IF EXECUTE_WAIT "Powershell.exe|"+a$+" >"+f$ ' Conversion du résultat format Unicode en format Dos FILE_OPEN_WRITE 1,fs$ FILE_WRITELN 1,"Do Until WScript.StdIn.AtEndOfStream" FILE_WRITELN 1," WScript.StdOut.WriteLine WScript.StdIn.ReadLine" FILE_WRITELN 1,"Loop" FILE_CLOSE 1 EXECUTE_WAIT "cmd.exe|/c TYPE "+q$+f$+q$+" | cscript //NoLogo "+fs$+" >"+q$+fm$+q$ FILE_DELETE f$: FILE_COPY fm$,f$: FILE_DELETE fm$ FILE_DELETE fs$ END_SUB ' ============================================================================== SUB Duree(t1$,t2$) ' Durée écoulée entre deux heures au format Time$ (HH:MM:SS) ' Résultat dans le clipboard au format HH:MM:SS DIM_LOCAL d1%,d2%,d%,h%,m%,s%,a$ d1%=3600*VAL(LEFT$(t1$,2))+60*VAL(MID$(t1$,4,2))+VAL(RIGHT$(t1$,2)): ' secondes d2%=3600*VAL(LEFT$(t2$,2))+60*VAL(MID$(t2$,4,2))+VAL(RIGHT$(t2$,2)): ' secondes IF d2%<d1% THEN d2% = d2%+86400: ' à cheval sur minuit d% = d2%-d1% h% = INT(d%/3600): d% = d%-h%*3600 m% = INT(d%/60): s% = d%-m%*60 a$ = RIGHT$("0"+STR$(h%),2)+":"+RIGHT$("0"+STR$(m%),2)+":"+RIGHT$("0"+STR$(s%),2) CLIPBOARD_STRING_COPY a$ END_SUB ' ============================================================================== NB Un autre moyen d'obtenir la liste des logiciels, cette fois-ci avec leur numéro de version, avec la fonction wmicPar exemple, avec résultat dans le fichier texte f$: - Code:
-
EXECUTE_WAIT "cmd.exe|/c wmic /output:"+f$+" product get name,version" mais le temps de traitement est aussi long qu'avec Powershell (plusieurs minutes) Et attention, le résultat dans le fichier est comme toujours au format unicode, c'est à dire de l'ascii avec un caractère sur deux = 0 machine, et les sauts de ligne = 'h0A' au lieu de '0D0A', il faut donc le convertir au format texte exploitable avant utilisation (voir ci-dessus). | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Liste des logiciels installés Mer 14 Nov 2018 - 10:02 | |
| Non, c'est très intéressant. Comme je ne programme plus, perso je ne commente plus beaucoup vos messages pour ne pas polluer inutilement mais puisque tu n'as eu aucun commentaire je te rassure avec ce petit message. C'est une fonction qui a toute son utilité. Pour toi qui fait pas mal appel à des programmes externes de retouche d'image par exemple, on peut imaginer une vérification de la présence du logiciel (je n'ai pas vu si on avait son chemin dans ce que l'on récupère mais sinon, on peut même imaginer la mise à jour automatique de la variable du chemin... et un message si l'application n'est pas installée, par exemple) | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Liste des logiciels installés Mer 14 Nov 2018 - 17:52 | |
| Salut JL35 ! La possibilité est intéressante. J'avoue ne pas avoir testé... Mais comme dit Jicehel pour tester l'installation de certains logiciels cela peut être un plus. Comme par exemple ressource hacker que l'on utilise de temps à autre avec certains codes. Il y a aussi la possibilité de tester la présence de certaine version pour les mise à jour. Enfin bref c'est un outil que l'on utilisera pas tous les jours mais qui un jour servira sûrement ! Merci JL35 ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Liste des logiciels installés Mer 14 Nov 2018 - 19:07 | |
| C'est sûr que c'est d'une utilisation tout à fait ponctuelle ! un peu un exercice de style, mais ça peut servir occasionnellement. | |
| | | Navigateur
Nombre de messages : 42 Age : 76 Localisation : Les Clayes-sous-bois 78340 Date d'inscription : 02/09/2016
| Sujet: Modifications Jeu 15 Nov 2018 - 10:36 | |
| Bonjour JL35, Pour que le dernier programme marche pour moi (win10), j'ai dû utiliser mon répertoire utilisateur où j'ai les droits en écriture soit : C:\Users\Mon_Compte\Liste.txt C:\Users\Mon_Compte\XY.txt C:\Users\Mon_Compte\Unix2dos.vbs Comme je suis en format H:MM:SS AM (ou PM), j'ai aussi modifié le sous-programme "Duree" qui devrait fonctionner aussi pour le format HH:MM:SS (pas testé) : - Code:
-
SUB Duree(t1$,t2$) ' Durée écoulée entre deux heures au format Time$ (HH:MM:SS) ' Résultat dans le clipboard au format HH:MM:SS DIM_LOCAL d1%,d2%,d%,h%,m%,s%,a$ if MID$(t1$,2,1) =":" then t1$ = "0" + t1$ : 'Test du format H:MM:SS d1%=3600*VAL(LEFT$(t1$,2))+60*VAL(MID$(t1$,4,2))+VAL(MID$(t1$,7,2)): ' secondes if MID$(t2$,2,1) =":" then t2$ = "0" + t2$ : 'Test du format H:MM:SS d2%=3600*VAL(LEFT$(t2$,2))+60*VAL(MID$(t2$,4,2))+VAL(MID$(t2$,7,2)): ' secondes IF d2%<d1% THEN d2% = d2%+86400: ' à cheval sur minuit d% = d2%-d1% h% = INT(d%/3600): d% = d%-h%*3600 m% = INT(d%/60): s% = d%-m%*60 a$ = RIGHT$("0"+STR$(h%),2)+":"+RIGHT$("0"+STR$(m%),2)+":"+RIGHT$("0"+STR$(s%),2) CLIPBOARD_STRING_COPY a$ END_SUB Navigateur | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Liste des logiciels installés Jeu 15 Nov 2018 - 18:03 | |
| Merci Navigateur pour l'info, ça peut servir à certains (perso je suis toujours sous W7...) Quant à la sub Duree, c'est un peu un gadget pour avoir une idée de la durée, mais autant que ça marche ! | |
| | | Contenu sponsorisé
| Sujet: Re: Liste des logiciels installés | |
| |
| | | | Liste des logiciels installés | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |