[R] capGetDriverDescription

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

[R] capGetDriverDescription

#1

Message par matwachich »

Svp je n'arrive pas à utiliser cette fonction: capGetDriverDescription

http://msdn.microsoft.com/en-us/library ... S.85).aspx

Merci
Modifié en dernier par matwachich le mar. 16 nov. 2010 22:05, modifié 1 fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] capGetDriverDescription

#2

Message par timmalos »

Essayez ceci:

Code : Tout sélectionner

Global $aTest

For $i = 0 To 9
    $aTest = _capGetDriverDescription($i)
    If @error Then ExitLoop
    ConsoleWrite($aTest[0] & @TAB & $aTest[1] & @CRLF)
Next


Func _capGetDriverDescription($iDriverIndex)

    Local $aCall = DllCall("avicap32.dll", "int", "capGetDriverDescriptionW", _
            "ushort", $iDriverIndex, _
            "wstr", "", _
            "int", 1024, _
            "wstr", "", _
            "int", 1024)

    If @error Or Not $aCall[0] Then
        Return SetError(1, 0, 0)
    EndIf

    Local $aRet[2] = [$aCall[2], $aCall[4]]

    Return $aRet

EndFunc
Ou ceci :

Code : Tout sélectionner

#include <WinAPI.au3>

Local $aTest

For $i = 0 To 9
    $aTest = _capGetDriverDescription($i)
    If @error Then ExitLoop
    ConsoleWrite($aTest[0] & @TAB & $aTest[1] & @CRLF)
Next


Func _capGetDriverDescription($iIndex)
    Local $tBuffName, $tBuffVer
    Local $aResult, $aRet[2]
    
    $tBuffName = DllStructCreate("char[128]")
    $tBuffVer  = DllStructCreate("char[128]")
    
    $aResult = DllCall("avicap32.dll", "int", "capGetDriverDescriptionA", "ushort", $iIndex, "ptr", DllStructGetPtr($tBuffName), _
                        "int", 128, "ptr", DllStructGetPtr($tBuffVer), "int", 128)
                        
    If @error Then Return SetError(@error, @extended, 0)
    
    If $aResult[0] Then
        $aRet[0] = DllStructGetData($tBuffName, 1)
        $aRet[1] = DllStructGetData($tBuffVer, 1)
        Return $aRet
    EndIf
    
    Return SetError(1, 0, 0)
EndFunc
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] capGetDriverDescription

#3

Message par matwachich »

Un grand merci à toi!!!
Les deux marchent à merveille!

Au fait je bloquais sur le fait qu'il faut passer des buffers à la fonction, en C je saurais le faire mais la...

J'ai bien essayé des DllStruct mais j'ai pas eu l'idée de mettre char[128]!

Encore merki!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [R] capGetDriverDescription

#4

Message par Jerome »

Coucou,


Pour ma simple culture général, pourrez t'on m'expliquer a quoi sa sert de creer sa et dans quel but :)
Buffer aussi ?



Jérôme
Répondre