[R] IDM

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

[R] IDM

#1

Message par Sea »

Salut tout le monde voulant utiliser IDM(internet download manager) dans un projet je me suis documenté et j'ai vu qu'on pouvais utiliser en tant qu'objet COM.
Cependant je n'es pas très bien compris comment m'en servir.

Sur le site on peux trouver comme code VB

Code : Tout sélectionner

Private Sub Command1_Click()
Dim idm1 As CIDMLinkTransmitter
Dim referer As String
Dim cookie As String
Dim postData As String
Dim user As String
Dim password As String
Set idm1 = CreateObject("IDMan.CIDMLinkTransmitter")
idm1.SendLinkToIDM "http://www.internetdownloadmanager.com/idman401.exe",
referrer, cookie, postData, user, password, "C:\", "idman401.exe", 0
End Sub
 
Donc en autoit j'avais fait

Code : Tout sélectionner

$idm1 = ObjCreate("IDMan.CIDMLinkTransmitter")
 
Mais il n'est pas reconnu en tant qu'objet...

J'ai donc fais une interface...

Code : Tout sélectionner

$CLSID = "{AC746233-E9D3-49CD-862F-068F7B7CCCA4}"
$IID = "{4BD46AAE-C51F-4BF7-8BC0-2E86E33D1873}"
$Description = "hresult SendLinkToIDM(BSTR bstrUrl, BSTR bstrReferer, BSTR bstrCookies, BSTR bstrData, BSTR bstrUser, BSTR bstrPassword, BSTR bstrLocalPath, BSTR bstrLocalFileName, long lFlags);"


$oIDM = ObjCreateInterface ($CLSID, $IID, $Description)

$url = "http://www.internetdownloadmanager.com/idman401.exe"
$referrer =String("")
$cookie=String("")
$postData=String("")
$user=String("")
$password=String("")

$oIDM.HRESULT($url,$referrer, $cookie, $postData, $user, $password, "C:\", "idman401.exe", 0)
 
La autoit me The requested action with this object has failed en poitant sur ma ligne $oIDM.HRESULT

Voici les infos que j'ai.
► Afficher le texte
Bref je ne comprend pas trop peux être à cause de Dim idm1 As CIDMLinkTransmitter?
Modifié en dernier par Sea le dim. 22 sept. 2013 15:08, modifié 1 fois.
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] IDM

#2

Message par FireFox »

Bonjour,
Tu y étais presque.

HRESULT est un type et non une méthode (fonction). Tu ne peux donc pas faire $obj.HRESULT.

La définition (tag) de ton objet est incorrecte, là par contre c'est l'inverse: Il faut mettre la fonction puis le type de retour et entre parenthèse les types des paramètres SANS leur nom.

Ce qui donne:

Code : Tout sélectionner

Global Const $sCLSID_MLinkTransmitter = "{AC746233-E9D3-49CD-862F-068F7B7CCCA4}"
Global Const $sIID_MLinkTransmitter = "{4BD46AAE-C51F-4BF7-8BC0-2E86E33D1873}"
Global Const $tagCIDMLinkTransmitter = _
        "SendLinkToIDM hresult(bstr;bstr;bstr;bstr;bstr;bstr;bstr;bstr;long);"

Local $oIDM = ObjCreateInterface($sCLSID_MLinkTransmitter, $sIID_MLinkTransmitter, $tagCIDMLinkTransmitter)

Local $sURL = "http://upload.wikimedia.org/wikipedia/fr/9/9e/Google_Chrome_logo.png"
Local $sReferer, $sCookie, $sPostData, $sUser, $sPassword

$oIDM.SendLinkToIDM($sURL, $sReferer, $sCookie, $sPostData, $sUser, $sPassword, @DesktopDir, "Google_Chrome_logo.png", 0)
 
Comme tu peux le voir j'ai changé les noms de variables, c'est entièrement personnel, les tiennes marchent tout aussi bien.
J'ai changé le lien car le tien faisait pleins de redirections pour au final tomber sur une page HTML.
Une dernière note concernant les strings: lorsque tu déclares une variable sans l'initialiser c'est un string vide donc "". Nul besoin de faire String("").

Cdlt, FireFox.
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..] IDM

#3

Message par Sea »

Une nouvelle tête sur ce forum et en plus qu'i s'y connais ça fais que du bien de voir un new mvp :p

Merci pour ta réponse effectivement j'avais essayé avec $oIDM.SendLinkToIDM mais je n'avais pas précisé de description surement pour cela que sa bugais ^^
Répondre