Functions > ObjCOM >


ObjGet

Obtient une référence sur un objet COM à partir d'un processus ou d'un fichier existant.

ObjGet ( "filename" [, "classname" [, instance]] )

Paramètres

filename Le chemin d'accès complet et le nom du fichier contenant l'objet (Voir Remarques).
classname [optionnel] Identifiant de classe. Peut être ProgID ou la représentation chaîne du CLSID.
instance [optionnel] Instance de l'objet pour les objets ROT da la même classe.

Valeur de retour

Succès: Retourne l'objet.
Échec: Définit @error <> 0.

Remarques

Le nom du fichier est facultatif si vous souhaitez utiliser uniquement l'identifiant de classe, mais le paramètre ne peut pas être omis.
Utilisez une chaîne vide si vous voulez accéder à des objets de la Table des Objets en cours d'Exécution (Running Object Table). Vous pouvez utiliser le troisième paramètre pour spécifier l'instance désirée dans ce cas.
Dans tous les autres cas, le troisième paramètre est ignoré.

Si vous utilisez un nom de fichier, le nom de classe est facultatif. Il est uniquement nécessaire si vous voulez charger un objet d'une classe spécifique.
Le paramètre Classname ne peut pas avoir une valeur par défaut. S'il est spécifié, alors il est traité.

Consultez Référence Obj/COM pour plus d'informations sur les objets.

En relation

GUICtrlCreateObj, IsObj, ObjCreate, ObjEvent, ObjName

Exemples

Exemple 1

#include <MsgBoxConstants.au3>

; Exemple qui obtient un objet en utilisant son nom de classe
; Excel doit être activé pour cet exemple

Example()

Func Example()
    Local $oExcel = ObjGet("", "Excel.Application") ; Obtient un objet Excel existant

    If @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Excel File Test" & @CRLF & "Erreur: aucun objet Excel actif. Error code: " & Hex(@error, 8))
        Return False
    EndIf

    $oExcel.Visible = 1 ; Affiche la gui
    $oExcel.workbooks.add ; Ajoute un nouveau classeur
EndFunc   ;==>Example


Exemple 2

; Exemple qui obtient un objet en utilisant un nom de fichier
; Un fichier Excel avec le nom du fichier Worksheet.xls doit être créé 
; dans le répertoire de script pour que cet exemple fonctionne.

#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $sFileName = @ScriptDir & "\Worksheet.xls"

    If Not FileExists($sFileName) Then
        MsgBox($MB_SYSTEMMODAL, "", "Excel File Test" & @CRLF & "Impossible d'exécuter ce test, parce que vous n'avez pas créé le fichier Excel " & $sFileName)
        Return False
    EndIf

    Local $oExcelDoc = ObjGet($sFileName) ; Obtient un objet Excel à partir d'un nom de fichier existant

    If IsObj($oExcelDoc) Then

        ;Astuce: Supprimez ces lignes pour rendre Excel visible: (crédit : DaleHohm)
        ;oExcelDoc.Windows $(1) = 1.Visible; Définit la première feuille de calcul dans le classeur visible
        ;oExcelDoc.Application.Visible $= 1; Rend l'application visible (sans que Excel quitte)

        Local $sString = "" ; Chaîne à des fins d'affichage

        For $oProperty In $oExcelDoc.BuiltinDocumentProperties
            $sString &= $oProperty.Name & ":" & $oProperty.Value & @CRLF
        Next

        MsgBox($MB_SYSTEMMODAL, "", "Test Fichier Excel:" & @CRLF & "Les propriétés du document  " & $sFileName & " sont:" & @CRLF & @CRLF & $sString)

        $oExcelDoc.Close ; Ferme le document Excel

    Else
        MsgBox($MB_SYSTEMMODAL, "", "Test Fichier Excel:" & @CRLF & "Erreur: Impossible d'ouvrir " & $sFileName & " en tant qu'objet Excel.")
    EndIf
EndFunc   ;==>Example