papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Détecter le type du PC Portable ou Fixe Ven 12 Juin 2015 - 4:28 | |
| Voici une SUB CheckTypePC() utilisant un script VBS pour détecter le type du PC sur lequel on travaille : PC portable ou PC fixe. Ça peut être utile pour l’installation des certaines applications sur des portables. Sinon, ça sera un inutilitaire de plus (bon pour la poubelle!) - Code:
-
rem ============================================================================ rem Détecter le type du PC Portable ou Fixe rem Par Papydall rem ============================================================================ CheckTypePC() if TypePC$ = "Notebook" message "Ordinateur Portable" else if TypePC$ = "Desktop" then message "Ordinateur Fixe" end_if end
rem ============================================================================ ' Retourne dans la variable globale TypePC$, le résultat : ' "Notebook" pour un ordinateur portable ' "Desktop" pour un ordinateur fixe SUB CheckTypePC() dim_local f$,retour$ if variable("TypePC$") = 0 then DIM TypePC$ if dir_exists("c:\temp") = 0 then dir_make "c:\temp" f$ = "c:\temp\CheckTypePC.vbs" : ' Fichier temporaire contenant le script retour$ = "c:\temp\retour.txt" : ' Fichier temporaire contenant le résultat de la fonction ' Enregistrer le script dans le fichier temporaire f$ FILE_OPEN_WRITE 9999, f$ file_writeln 9999, "DIM fso,MyFile" : ' debut du script file_writeln 9999, "Set fso = CreateObject("+chr$(34)+"Scripting.FileSystemObject"+chr$(34)+")" file_writeln 9999, "set MyFile = fso.CreateTextFile("+chr$(34)+retour$+chr$(34)+", True)" ' la fonction de détection du type de l'ordinateur file_writeln 9999, "Function CheckTypePC ()" file_writeln 9999, " On Error Resume Next" file_writeln 9999, " Dim objWMIService,colItems,objItem" file_writeln 9999, " Set objWMIService = GetObject("+CHR$(34)+"winmgmts:\\.\root\cimv2"+CHR$(34)+")" file_writeln 9999, " Set colItems = objWMIService.ExecQuery("+CHR$(34)+"Select DeviceID from Win32_PCMCIAController"+CHR$(34)+",,48)" file_writeln 9999, " For Each objItem in colItems" file_writeln 9999, " If Not (objItem.DeviceID = "+CHR$(34)+""+CHR$(34)+") Then" file_writeln 9999, " CheckTypePC = "+CHR$(34)+"Notebook"+CHR$(34)+"" file_writeln 9999, " Exit For" file_writeln 9999, " End If " file_writeln 9999, " Next" file_writeln 9999, " Set colItems = objWMIService.ExecQuery("+CHR$(34)+"Select DeviceID from Win32_PortableBattery"+CHR$(34)+",,48)" file_writeln 9999, " For Each objItem in colItems" file_writeln 9999, " If Not (objItem.DeviceID = "+CHR$(34)+""+CHR$(34)+") Then" file_writeln 9999, " CheckTypePC = "+CHR$(34)+"Notebook"+CHR$(34)+"" file_writeln 9999, " Exit For" file_writeln 9999, " End If " file_writeln 9999, " Next" file_writeln 9999, " Set colItems = objWMIService.ExecQuery("+CHR$(34)+"Select DeviceID from Win32_Battery"+CHR$(34)+",,48)" file_writeln 9999, " For Each objItem in colItems" file_writeln 9999, " If Not (objItem.DeviceID = "+CHR$(34)+""+CHR$(34)+") Then" file_writeln 9999, " CheckTypePC = "+CHR$(34)+"Notebook"+CHR$(34)+"" file_writeln 9999, " Exit For" file_writeln 9999, " End If " file_writeln 9999, " Next" file_writeln 9999, " If CheckTypePC = "+CHR$(34)+chr$(34)+" Then CheckTypePC = "+CHR$(34)+"Desktop" +chr$(34) file_writeln 9999, " Set objWMIService = Nothing" file_writeln 9999, "End Function" ' Enregistrer le retour de la fonction file_writeln 9999, "MyFile.WriteLine(CheckTypePC)" file_writeln 9999, "MyFile.Close" : ' Fin du script FILE_CLOSE 9999 EXECUTE_WAIT f$ : ' Exécution du script FILE_DELETE f$ : ' supprimer le fichier du script file_open_read 9999,retour$ : ' ouvrir le fichier contenant la sortie du script file_readln 9999,TypePC$ : ' Récuperer la valeur de la fonction file_close 9999 : file_delete retour$ : ' Supprimer le fichier temporaire END_SUB rem ============================================================================
| |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Détecter le type du PC Portable ou Fixe Ven 12 Juin 2015 - 8:17 | |
| | |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Détecter le type du PC Portable ou Fixe Ven 12 Juin 2015 - 8:24 | |
| Encore un outil bien pratique, je vais partir, pas le temsp de tester, mais j'ai regardé le code et ça a l'air très bien. | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Détecter le type du PC Portable ou Fixe Ven 12 Juin 2015 - 8:42 | |
| Effectivement, c'est utile pour un programme d'installation. Cela ne va pas servir tous les jours, mais c'est à conserver.
A+ | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Détecter le type du PC Portable ou Fixe Ven 12 Juin 2015 - 14:43 | |
| Merci à Klaus, Jicehel, Jean Claude et à tous ceux qui ont pris la peine de jeter un œil sur le code. | |
|
Contenu sponsorisé
| Sujet: Re: Détecter le type du PC Portable ou Fixe | |
| |
|