[Tuto] Les objets (Objcreate et compagnie)

Espace contenant des tutoriels divers concernant AutoIt.
Règles du forum
.

Tutoriel "La programmation avec Autoit" : https://openclassrooms.com/fr/courses/1 ... vec-autoit
Répondre
SagePourpre
Modérateur
Modérateur
Messages : 442
Enregistré le : dim. 06 juil. 2008 08:11
Status : Hors ligne

[Tuto] Les objets (Objcreate et compagnie)

#1

Message par SagePourpre » dim. 11 avr. 2010 11:24

Premièrement, si vous voulez vous intéresser aux objets et à leurs nombreuses
possibilités, vous aurez besoin d'un programme pour voir les fonctions relative aux objets.

Je vais chercher pour un programme gratuit équivalent mais en attendant, voici le lien
vers un "shareware" de 30 jours pour parcourir les objets et voir leur fonctions

COM Object browser ( shareware )
Page de téléchargement
Lien direct


Tutorial à venir
(Je vais rajouter quelques informations au fur et à mesure que j'en apprend sur le sujet





Voici un petit exemple que j'ai bidouillé :

Code : Tout sélectionner

#include <Array.au3>
$oMessenger = ObjCreate("Messenger.UIAutomation.1")
If Not IsObj($oMessenger) Then
MsgBox(0,"Debug","Objection Creation Fail")
Exit
Else
    $MessengerStatus = $oMessenger.MyStatus
    ;ConsoleWrite($MessengerStatus & @CRLF)
    Dim $status[4][2] = _
    [[2,"En Ligne"], _
    [10,"Occupé"], _
    [34,"Absent"], _
    [6,"Hors-Ligne"]]
    $index =_ArraySearch($status,$MessengerStatus,0,0,0,0,0,0)
    If Not @error Then ConsoleWrite("Statut WLM : " & $status[$index][1] & @CRLF)

    EndIf
 
Comment suis-je parvenu à ce résultat ?

En ouvrant le petit programme proposé en lien, vous devriez voir apparaître beaucoup d'objets
de type COM.

En recherchant tout d'abord pour "windows live messenger" ( sans succès ) puis tout simplement "Messenger",
je suis tombé sur quelques résultats dont "Messenger.UIAutomation.1".

En cliquant sur le résultat, on peut voir pleins de fonctions pouvant être utilisé avec cet objet, comme
par exemple "MyStatus", qui retourne un chiffre correspondant à votre status correspondant.

Tadam ! (Testé avec la version Build 14.0.8089.726)
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )

SagePourpre
Modérateur
Modérateur
Messages : 442
Enregistré le : dim. 06 juil. 2008 08:11
Status : Hors ligne

Re: [Tuto] Les objets (Objcreate et compagnie)

#2

Message par SagePourpre » dim. 11 avr. 2010 19:23

Voici un deuxième exemple créé en observant les fonctions de
l'objet shockwave de flash et en utilisant google pour trouver
la documentation relative à l'objet en question.

Code : Tout sélectionner

Func GUICtrlCreateFlash($url,$x,$y,$w,$h,$scalemode = 0,$bgcolor ="#000000",$menu = 0)
    Local $oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    ;If @error Then Return SetError(1,0,-1)
GUICtrlCreateObj($oFlash,$x,$y,$w,$h)


;Set up COM error handling
;$oMyError = ObjEvent("AutoIt.Error","COMErrFunc")
;Initialize the Flash ActiveX
; Paramètres possibles
; http://kb2.adobe.com/cps/127/tn_12701.html
With $oFlash; Object tag pool
    .Movie = FileGetShortName($url)
    .ScaleMode = $scalemode; 0 showall, 1 noborder, 2 exactFit, 3 noscale
    .bgcolor = $bgcolor
    .Loop = False
    .wmode = "transparent"; Opaque / transparent
    .allowScriptAccess = "Always"
    .menu = $menu  ; 0 = False , 1 = True

EndWith
EndFunc
 
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )

Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 12:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [Tuto] Les objets (Objcreate et compagnie)

#3

Message par Habibsbib » mar. 20 avr. 2010 13:14

Bel effort :)
Je suis en train de rédiger un Big-Tuto sur le sujet pour le SDZ.

SagePourpre
Modérateur
Modérateur
Messages : 442
Enregistré le : dim. 06 juil. 2008 08:11
Status : Hors ligne

Re: [Tuto] Les objets (Objcreate et compagnie)

#4

Message par SagePourpre » mar. 20 avr. 2010 15:28

@Habibsbib

Tu feras signe ici quand ça sera fait...
Je suis avide de toutes les ressources sur le sujet.
( C'est parce que je n'en ai pas trouvé d'ailleurs que j'ai mis en place ce sujet )


@Tout le monde
Voici un Udf offrant une meilleure gestion des objets avec autoit. Auoit Objects UDF
Il y'a une dizaine d'exemples de fournis. En contrepartie, son utilisation semble beaucoup plus compliquée.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )

Avatar du membre
Uranium
Niveau 5
Niveau 5
Messages : 143
Enregistré le : mer. 28 mars 2012 12:13
Status : Hors ligne

Re: [Tuto] Les objets (Objcreate et compagnie)

#5

Message par Uranium » mer. 18 avr. 2012 20:25

J'espère pas embêter mon petit monde en faisant remonter se sujet :oops: de 2010 mais il est vraiment intéressant mais tu as mis sa.
En cliquant sur le résultat, on peut voir pleins de fonctions pouvant être utilisé avec cet objet, comme
par exemple "MyStatus", qui retourne un chiffre correspondant à votre status correspondant.
Comment tu l'as su qu'il retournais un chiffre correspondant à notre status car ton programme ne donne pas plus que 'MyStatus'
« En mathématiques, “évident” est le mot le plus dangereux. »

lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [Tuto] Les objets (Objcreate et compagnie)

#6

Message par lesolutionneur » dim. 22 avr. 2012 10:20

Pourquoi ne pas utiliser le visionneur de COM officiel ?

http://www.microsoft.com/download/en/de ... en&id=7007

EDIT: bon peut-être est-ce à cause de l'interface qui est moche et le fait qu'on ne puisse pas rechercher d'interface COM :P

Avatar du membre
Uranium
Niveau 5
Niveau 5
Messages : 143
Enregistré le : mer. 28 mars 2012 12:13
Status : Hors ligne

Re: [Tuto] Les objets (Objcreate et compagnie)

#7

Message par Uranium » dim. 22 avr. 2012 16:08

La visionneuse de COM officiel est vraiment nulle par apport à l'autre , on trouve rien dessus.
Pourtant ça à l'air rangé à la façon Windows :P

Merci quand même , lesolutionneur.
Si quelqu'un trouve un visionneur de Com/Objet pourrait m’envoyer le lien svp car je cherche mais trouve pas grand chose de bon
« En mathématiques, “évident” est le mot le plus dangereux. »

Répondre