Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[?] Selectionner une ligne en rouge dans une listview
Auteur Message
Répondre en citant
Message [?] Selectionner une ligne en rouge dans une listview 
Bonjour à tous
j'ai essayé de travailler sur un tableau 2D et je suis un peu perdue sur la méthode.

Je travaille toujours sur gao et j essaie de detecter l'antivirus sur le pc et de sélectionner dans la liste l'executable

Func _DetectAntivirus() -> soucis

;Trouver dans la liste des fichiers listés la valeur = à $Tableau[$i][2] et coloriser la ligne en rouge , faire apparaitre une messagebox
;GUICtrlSetColor
; L'antivirus détecté est : souhaitez vous le désinstaller Oui | Non
; Si oui alors lancer l'executable
; Si non afficher la Gui pour choisir autre executable
;Si l'antivirus n'est pas dans la liste alors afficher la gui

Si quelqu'un a une idée car je sèche totalement, on m'a dit de selectionner l'item de la gui mais je vois pas comment m y prendre
merci à ceux qui me dépanneront.

Code:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=ICO\uninstall.ico
#AutoIt3Wrapper_Outfile=GAO.exe
#AutoIt3Wrapper_Res_File_Add=C:\Users\Cari\Desktop\GAO\uninstall.jpg, rt_rcdata, LOGO
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

DirCreate(@TempDir & "\GAO\tmp\")
FileInstall("C:\Users\Cari\Desktop\GAO\avastclear.exe", @TempDir & "\GAO\tmp\avastclear.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\avgremover.exe", @TempDir & "\GAO\tmp\avgremover.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\avgremoverx64.exe", @TempDir & "\GAO\tmp\avgremoverx64.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\avira_registry_cleaner_en.exe", @TempDir & "\GAO\tmp\avira_registry_cleaner_en.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\cleanwipe.exe", @TempDir & "\GAO\tmp\cleanwipe.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\esetuninstaller.exe", @TempDir & "\GAO\tmp\esetuninstaller.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\kavremover.exe", @TempDir & "\GAO\tmp\kavremover.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\mcafeecleanuptool.exe", @TempDir & "\GAO\tmp\mcafeecleanuptool.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\normanviruscontrolclean.exe", @TempDir & "\GAO\tmp\normanviruscontrolclean.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\nortonremovaltool.exe", @TempDir & "\GAO\tmp\nortonremovaltool.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\pandauninstaller.exe", @TempDir & "\GAO\tmp\pandauninstaller.exe")

#include <FileListToArray3.au3>
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <IE.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <resources.au3> ; INTEGRATION DES RESSOURCES IMAGES :D La placer dans ton dossier include autoi


#cs ----------------------------------------------------------------------------
    AutoIt Version : 3.3.6.0
    Auteur du code source de base :  Laddy
    Fonction du Script : Désinstalleur d'antivirus
    Adaptation du script de Sydney en batch : http://batch.xoo.it/t2221-GAO-3-4.htm
    Merci Tommyddr pour son exemple Loadicon.au3
    Merci TopXm et Mikell
#ce ----------------------------------------------------------------------------

Dim $Tableau[9][3]
$Tableau[0][0] = 2
$Tableau[0][1] = "Antivir"
$Tableau[0][2] = "avira_registry_cleaner_en.exe"

$Tableau[1][0] = 2
$Tableau[1][1] = "Avast"
$Tableau[1][2] = "avastclear.exe"

$Tableau[2][0] = 2
$Tableau[2][1] = "Mac Afee"
$Tableau[2][2] = "mcafeecleanuptool.exe"

$Tableau[3][0] = 2
$Tableau[3][1] = "Eset"
$Tableau[3][2] = "esetuninstaller.exe"

$Tableau[4][0] = 2
$Tableau[4][1] = "Norman"
$Tableau[4][2] = "normanviruscontrolclean.exe"

$Tableau[5][0] = 2
$Tableau[5][1] = "KaspTersky"
$Tableau[5][2] = "kavremover.exe"

$Tableau[6][0] = 2
$Tableau[6][1] = "AVG"
$Tableau[6][2] = "avgremover.exe"

$Tableau[7][0] = 2
$Tableau[7][1] = "Panda"
$Tableau[7][2] = "pandauninstaller.exe"

$Tableau[8][0] = 2
$Tableau[8][1] = "Norton"
$Tableau[8][2] = "nortonremovaltool.exe"


_DetectAntivirus()



Opt("GUIOnEventMode", 1) ; evenementiel pour créer l'action de chaque bouton avec une fonction. Pratique lors de multigui.
;déclaration des variables
Global $Path = @TempDir & "\GAO\tmp\";@ScriptDir
Global $Gui
Global $lview
Global $items[1] ; création d'un tableau
Global $version = "1.0.4"
Local $color = 0xFFFFFF


Global $Lang = @OSLang
If $Lang = "040C" Then ; pour mettre en français retirer le not
    Dim $aLang[7] = [5, "GAO par -Sydney - Version ", "Désinstalleur", "Quitter", "Historique", "Aide", "Choisir le désinstalleur de votre antivirus"]
Else
    Dim $aLang[7] = [5, "GAO By -Sydney - Version ", "Uninstaller", "Quit", "History", "Help", "Choose Your Antivirus Uninstaller"]
EndIf

;~ Variables liées au GUI Historique
Global Const $NomApplication = "GAO - GetOutAntivirus"
Global $version = "1.0.4"
Global $FormAbout
Global $FormAboutCoords
Global $FormAboutOK
Global $FormAboutActiveX
Global $FormAboutIE
Global $FormAboutHTML
Global $Form1_1
GUIRegisterMsg($WM_NOTIFY, "DoubleClick") ; pour gérer le double-clic

Global $Gui = GUICreate($aLang[1] & $version, 458, 295, 201, 130)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
$backgroundColor = GUISetBkColor($color, $Gui)
Global $Group1 = GUICtrlCreateGroup($aLang[6], 8, 8, 329, 280)
Global $lview = GUICtrlCreateListView("", 15, 34, 313, 245)
_GUICtrlListView_AddColumn($lview, $aLang[2], 200)
_GUICtrlListView_AddColumn($lview, "Version", 95)
_GUICtrlListView_SetExtendedListViewStyle($lview, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
$hImages = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($hImages, @SystemDir & "\shell32.dll", -3)
_GUICtrlListView_SetImageList($lview, $hImages, 1)
Global $Help = GUICtrlCreateButton($aLang[5], 360, 13, 75, 25)
GUICtrlSetOnEvent($Help, "Aide")
Global $Thanks = GUICtrlCreateButton("Crédits", 360, 51, 75, 25)
GUICtrlSetOnEvent($Thanks, "Thx")
Global $Historique = GUICtrlCreateButton($aLang[4], 360, 202, 75, 25)
GUICtrlSetOnEvent($Historique, "historique")
Global $Quitter = GUICtrlCreateButton($aLang[3], 360, 240, 75, 25)
GUICtrlSetOnEvent($Quitter, "quit")
Global $Pic1 = GUICtrlCreatePic("", 352, 96, 89, 89, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
_ResourceSetImageToCtrl(-1, "LOGO")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


Local $Files = _FileListToArray3($Path, "*.exe", 1, 0, 0, "GAO.exe") ; liste les exe contenu dans le dossier execpté GAO.exe
For $i = 1 To $Files[0]
    Local $image = AddIconByFileName($hImages, $Path & $Files[$i]) ; ajoute l image via la fonction
    Local $item = _GUICtrlListView_AddItem($lview, $Files[$i], $image, 0) ; affiche l image dans la colonne 0
    Local $item2 = _GUICtrlListView_AddSubItem($lview, $item, FileGetVersion($Path & $Files[$i]), 1) ; affiche le num de version dans la colonne 1
Next

While 1
    ; Sleep(10)
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Help
            Aide()
        Case $Thanks
            Thx()
        Case $Quitter
            quit()
    EndSwitch
WEnd

Func AddIconByFileName($hImages, $FileName)
    If (StringInStr(FileGetAttrib($FileName), "D")) Then
        $image = _GUIImageList_AddIcon($hImages, @SystemDir & "\shell32.dll", -4) ;Il vaut mieux extraire ca dans une variable globale pour ne pas la recréer à chaque passage.
    Else
        Local $Ext = GetExtension($FileName)
        Local $image
        If ($Ext = "ico") Then
            $image = _GUIImageList_AddIcon($hImages, $FileName)
        Else
            Local $Registre = GetNomIconByExt($Ext)
            If (Not (FileExists($Registre[0]))) Then
                $Registre[0] = @ScriptDir & "\" & $Registre[0]
            EndIf
            If (Not (FileExists($Registre[0]))) Then
                $Registre[0] = _WinAPI_FindExecutable($FileName)
                $Registre[1] = 0
            EndIf
            $image = _GUIImageList_AddIcon($hImages, $Registre[0], $Registre[1])
            If ($image = -1) Then
                If ($Ext = "exe") Then
                    $image = _GUIImageList_AddIcon($hImages, @SystemDir & "\shell32.dll", -3) ;Il vaut mieux extraire ca dans une variable globale pour ne pas la recréer à chaque passage.
                Else
                    $image = _GUIImageList_AddIcon($hImages, @SystemDir & "\shell32.dll", 0) ;Il vaut mieux extraire ca dans une variable globale pour ne pas la recréer à chaque passage.
                EndIf
            EndIf
        EndIf
    EndIf
    Return $image
EndFunc   ;==>AddIconByFileName

Func GetExtension($Path)
    Local $Ext = StringSplit($Path, ".", 3)
    Return $Ext[UBound($Ext) - 1]
EndFunc   ;==>GetExtension

Func GetNomIconByExt($Ext)
    Local $Retour[2] = [-1, -1]
    Local $Nom = RegRead("HKEY_CLASSES_ROOT\." & $Ext, "")
    Local $NomIcon = RegRead("HKEY_CLASSES_ROOT\" & $Nom & "\DefaultIcon", "")
    If (Not (@error)) Then
        $NomIcon = StringSplit($NomIcon, ",", 3)
        $Retour[0] = GetStringByEnv($NomIcon[0])
        If (UBound($NomIcon) > 1) Then
            $Retour[1] = $NomIcon[1]
        Else
            $Retour[1] = 0
        EndIf
    Else
        $NomIcon = RegRead("HKEY_CLASSES_ROOT\" & $Nom & "\shell\open\command", "")
        If (Not (@error)) Then
            $NomIcon = StringSplit($NomIcon, """", 3)
            If (UBound($NomIcon) > 1) Then
                $Retour[0] = GetStringByEnv($NomIcon[1])
            Else
                $Retour[0] = GetStringByEnv($NomIcon[0])
            EndIf
            $Retour[1] = 0
        EndIf
    EndIf
    Return $Retour
EndFunc   ;==>GetNomIconByExt

Func GetStringByEnv($Path)
    Local $ExpandEnvStrings = Opt("ExpandEnvStrings", 1)
    Local $Return = $Path
    Opt("ExpandEnvStrings", $ExpandEnvStrings)
    Return $Return
EndFunc   ;==>GetStringByEnv

Func quit()
    Exit
EndFunc   ;==>quit

Func DoubleClick($hWnd, $iMsg, $iwParam, $ilParam)
    Local $tagNMHDR = "hwnd hWndFrom;uint_ptr IDFrom;INT Code"
    Local $hWndFrom, $iIDFrom, $iCode, $hWndList
    $hWndList = $lview
    If Not IsHWnd($lview) Then $hWndList = GUICtrlGetHandle($lview)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $hWndList
            Switch $iCode
                Case $NM_DBLCLK
                    $indexLV = ControlListView($Gui, "", $hWndList, "GetSelected") ; récupère l'index de la ligne
                    $itemtxt = ControlListView($Gui, "", $hWndList, "GetText", $indexLV, 0) ; récupère le texte de la ligne, colonne 1
                    $FichierSelectionne = $itemtxt ; ^^
                    Run(@ComSpec & " /k " & '"' & $Path & "\" & $FichierSelectionne & '"', "", @SW_HIDE)
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>DoubleClick
Func Aide()
    MsgBox(0, "Instructions", "Effectuez un double-clic sur le programme à désinstaller." & @CRLF & " " & @CRLF & "Boutons Aide = Accéder à l'aide" & @CRLF & "Bouton Crédits = Accéder aux remerciements" & @CRLF & "Bouton Historique = Accéder à l'historique du logiciel" & @CRLF & "Bouton Quitter = Sortir du logiciel")
EndFunc   ;==>Aide

Func Thx()
    MsgBox(0, "Crédits", ".:Thanks to Laddy (4 CS) :." & @CRLF & ".:Thanks to TommyDDR (4 UDF):." & @CRLF & " " & @CRLF & "    Version 4.1" & @CRLF & "    By -Sydneysyd-")
EndFunc   ;==>Thx

Func historique()
    $FormAboutIE = _IECreateEmbedded() ; On Prépare un IE
    $FormAbout = GUICreate("Changelog", 510, 355, -1, -1, $DS_MODALFRAME, -1, $Form1_1) ; et un GUI
    $FormAboutOK = GUICtrlCreateButton("Sortir", 210, 290, 90, 30) ; un boutton pour ressortir
    GUICtrlSetOnEvent($FormAboutOK, "Sortir")
    GUISetBkColor(0xFFFFFF)
    $FormAboutHTML = "<html><head></head><body bgcolor=#ffffff>" & @CR _
             & "<table border=0 cellspacing=0 cellpadding=0 width=489 bgcolor=#ffffff><tr>" & @CR _
             & "<td width=163>&nbsp;</td>" & @CR _
             & "<td width=163><p align=center><b><u><span style='font-size:12pt;font-family:" & Chr(34) & "Verdana" & Chr(34) & ";color:#1F497D'>" & $NomApplication & "</span></u></b></p></td>" & @CR _
             & "<td width=163><p align=center><span style='font-size:8pt;font-family:" & Chr(34) & "Verdana" & Chr(34) & ";color:#1F497D'>v" & $version & "</span></p></td>" & @CR _
             & "</tr></table>" & @CR _
             & "<Table border=0 cellspacing=0 cellpadding=10 width=489 height=80 bgcolor=#ffffff>" & @CR _
             & "<tr><td align=justify><span style='font-size:8pt;font-family:" & Chr(34) & "Verdana" & Chr(34) & "'>" & "Version 3.4.1 - 19.01.2012" & "</span></td></tr>" & @CR _
             & "<tr><td align=justify><span style='font-size:8pt;font-family:" & Chr(34) & "Verdana" & Chr(34) & "'>" & "Changement de la version de Norton Removal Tools" & "</span></td></tr>" & @CR _
             & "<tr><td align=justify><span style='font-size:8pt;font-family:" & Chr(34) & "Verdana" & Chr(34) & "'>" & "Changement des version d'AVG Remover (64 et 32 bits)" & "</span></td></tr>" & @CR _
             & "<tr><td align=justify><span style='font-size:8pt;font-family:" & Chr(34) & "Verdana" & Chr(34) & "'>" & "Changement de la version de Mc Afee Cleanup Tools" & "</span></td></tr>" & @CR _
             & "</table>" & @CR _
             & "</body></htlm>"
    $FormAboutActiveX = GUICtrlCreateObj($FormAboutIE, -2, -2, 530, 280); On met le IE dans la GUI
    _IENavigate($FormAboutIE, "about:blank") ; On active l'IE
    _IEDocWriteHTML($FormAboutIE, $FormAboutHTML) ; On le remplit
    _IEAction($FormAboutIE, "refresh") ; et on l'affiche
    GUISetState(@SW_SHOW, $FormAbout)

EndFunc   ;==>historique

Func Sortir()
    GUIDelete($FormAbout)
EndFunc   ;==>Sortir



Func _DetectAntivirus()
    Global $n_MyError = 0, $o_MyError = ObjEvent("AutoIt.Error", "ObjCom_Err")

    ObjCom_Err()

    Global $software_antivirus = "Aucun Anti-Virus d'installé" & @CRLF
    Global $sObj = "winmgmts:\\" & @ComputerName & "\root\SecurityCenter"

    If @OSVersion = "WIN_7" Then $sObj &= "2"

    Global $Serv = ObjGet($sObj)
    Global $oRs = $Serv.ExecQuery("Select * from AntiVirusProduct")
    For $name In $oRs
        $software_antivirus = $name.displayName
    Next

    #cs
        ;tableau 1D
        For $i = 0 To $Tableau
        If StringInStr($software_antivirus, $Tableau[$i])  Then ; Si on trouve la chaine a chercher dans la ligne
        msgbox(0,"",$Tableau[$i])
        ;GUICtrlSetColor("", $Tableau[0]) ; on colorie avec la couleur mise elle aussi dans le tableau
        EndIf
        Next
    #ce
    ;Tableau 2D
    For $i = 0 To UBound($Tableau) - 1
        If StringInStr($software_antivirus, $Tableau[$i][1]) Then
            ConsoleWrite($Tableau[$i][1])
            ;Trouver dans la liste des fichiers listés la valeur = à $$Tableau[$i][2] et coloriser la ligne en rouge , faire apparaitre une messagebox
            ;GUICtrlSetColor($lview, $Tableau[$i][2])
            ; L'antivirus détecté est : souhaitez vous le désinstaller Oui | Non
            ; Si oui alors lancer l'executable
            ; Si non afficher la Gui pour choisir autre executable

            #cs
                Local $Files = _FileListToArray3($Path, "*.exe", 1, 0, 0, "GAO.exe") ; liste les exe contenu dans le dossier execpté GAO.exe
                For $i = 1 To $Files[0]
                Local $image = AddIconByFileName($hImages, $Path &  $Files[$i]) ; ajoute l image via la fonction
                Local $item = _GUICtrlListView_AddItem($lview, $Files[$i], $image, 0) ; affiche l image dans la colonne 0
                Local $item2 = _GUICtrlListView_AddSubItem($lview, $item, FileGetVersion($Path  & $Files[$i]), 1) ; affiche le num de version dans la colonne 1
                GUICtrlSetColor($Tableau[$i][2],0XFF0000)
                Next
            #ce
        EndIf
    Next

EndFunc   ;==>_DetectAntivirus

Func ObjCom_Err()
    $n_MyError = Hex($o_MyError.number, 8)
EndFunc   ;==>ObjCom_Err


;FIN DU CODE
 





______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch