' ---------------------------------------------------------- ' Script VBS d'énumération des modes graphiques ' disponibles sur une machine locale ou distante ' Fait appel à WMI ' Syntaxe : ' enumvideomode [] ' Paramètre : ' : nom NetBIOS de l'ordinateur ' si absent : machine locale ' ' JC BELLAMY © 2004 ' ---------------------------------------------------------- Const SW_HIDE=0 Const SW_SHOWNORMAL=1 Set net = Wscript.CreateObject("WScript.Network") Set args = Wscript.Arguments nbargs=args.count If nbargs=0 Then computer=net.computername Else computer=args(0) If computer="/?" Then msg= "Énumération des modes graphiques disponibles" & VBCRLF msg=msg & "sur une machine locale ou distante" & VBCRLF msg=msg & "JCB © 2004" & VBCRLF msg=msg & "--------------------------------------------" & VBCRLF msg=msg & "Syntaxe :" & VBCRLF msg=msg & " enumvideomode []" & VBCRLF msg=msg & "Paramètre :" & VBCRLF msg=msg & " : nom NetBIOS de l'ordinateur" & VBCRLF msg=msg & " si absent : machine locale" & VBCRLF wscript.echo msg wscript.quit End If end if TestHost false On Error Resume Next Set objWMIService = GetObject("winmgmts:\\" & Computer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from CIM_VideoControllerResolution",,48) For Each objItem in colItems With objItem s= FormatStrR(.HorizontalResolution,4) & " x " & _ FormatStrR(.VerticalResolution,4) & " en " & _ FormatStrR(.NumberOfColors,10) & " à " & _ FormatStrR(.RefreshRate,3) & " Hz" End With Wscript.Echo s Next '-------------------------------------------------------------------- 'Sous-programme de test du moteur 'Vu les sorties générées, c'est CSCRIPT (et non pas WSCRIPT) 'qui doit être utilisé de préférence Sub TestHost(force) dim rep strappli=lcase(Wscript.ScriptFullName) strFullName =lcase(WScript.FullName) i=InStr(1,strFullName,".exe",1) j=InStrRev(strFullName,"\",i,1) strCommand=Mid(strFullName,j+1,i-j-1) if strCommand<>"cscript" then If force then Init="Ce script doit être lancé avec CSCRIPT" Else Init="Il est préférable de lancer ce script avec CSCRIPT" End If rep=MsgBox(Init & VBCRLF & _ "Cela peut être rendu permanent avec la commande" & VBCRLF & _ "cscript //H:CScript //S /Nologo" & VBCRLF & _ "Voulez-vous que ce soit fait automatiquement?", _ vbYesNo + vbQuestion,strappli) if rep=vbYes then nomcmd="setscript.bat" Set ficcmd = fso.CreateTextFile(nomcmd) ficcmd.writeline "@echo off" ficcmd.writeline "cscript //H:CScript //S /Nologo" ficcmd.writeline "pause" params="" For i = 0 To nbargs-1 params=params & " " & args(i) next ficcmd.writeline chr(34) & strappli & chr(34) & params ficcmd.writeline "pause" ficcmd.close shell.Run nomcmd, SW_SHOWNORMAL,true force=true end if If force then WScript.Quit end if end sub '-------------------------------------------------------------------- Function FormatStrR(ch,lmax) l=len(ch) If l