Page 1 sur 1

[..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 09:48
par Netriann
Bonjour, merci par avance pour vos aides.

Après quelques heures à essayer de m'en sortir comme un grand, je fais appel à vos compétences.
J'essaie d'écrire un script, dans le cadre de mon stage, qui fait appel à une dll afin de renseigné un log et une base de donnée (glpi).

Donc, j'ai une dll, apisso32.dll, et un paramètre SSO_getParam. Si j'ai bien compris je dois envoyé en paramètre d'entrée la valeur "E" afin de récupérer une information précise dans cette dll. Après un nombre incalculable d'essai, qui ce solde tous par un message d'erreur du type 'la mémoire 0x000000 ne peu être "read"', je me rend compte que je n'ai pas compris le fonctionnement de cette fonction (pourtant après avoir étudier l'aide autoit et une aide sur internet).

Encore merci,
Bonne journée.

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 10:08
par jchd
Sans une base de code, sans une description précise des fonctions de la DLL ?
Ca va pas le faire...

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 10:59
par Netriann
La dll récupère des informations sur le système. Plus précisément le getParam (avec E) permet de récupérer le numéro d'utilisateur.
Je n'en sais guère plus ... surtout que je viens de me rendre compte qu'il y à un deuxième paramètre à renseigner et que je n'ai pas la moindre idée de quoi il s'agit.

J'ai donc deux entrée : référence du paramètre (E) et services (???) pour un de sorti : la valeur du paramètre.
Je fournirai plus de précisions quand et si je les ai.

Pour le code, je veux bien montrer ce que j'ai fais, mais çà na pas d’intérêt car je ne comprend pas ce que je fais.

Code : Tout sélectionner

DllOpen("apisso32.dll")

$dll = DllCall("apisso32.dll", "dword", "SSO_getParam" ,"dword*","E")

DllClose("apisso32.dll")
 
Bref, Merci quand même, je crois que je vais abandonner ...

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 11:11
par sksbir
Bonjour
Pour exploiter une DLL, j'utilise objcreate ( en tout cas, perso, je ne sais faire que comme ça :mrgreen: )
exemples:
$oMD5 = ObjCreate("XStandard.MD5") ;"ActiveX MD5 Hash/CheckSum ( MD5.dll )

autre exemple:

; appel à DSOFILE.Dll (doit etre enregistré sur le PC avec regsvr32 )
$objPropertyReader=ObjCreate("DSOFile.OleDocumentProperties")


Après, tu utilises la variable qui stocke l'objet pour utiliser ta DLL.
exemple:
$TEST=$objPropertyReader.open($REPERTOIRE & "\" & $FICHIER)
$TITLE=$objPropertyReader.SummaryProperties.Title

mais là, ça dépend complètement de ta DLL....

Par contre, tu noteras que dans mes exemples, le nom d'appel de l'objet n'a pas de lien avec le nom de fichier de la DLL : XStandard.MD5 <> MD5.dll
C'est pour ça qu'il te faut la documentation sur ta DLL

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 11:24
par Netriann
Merci sksbir pour ta réponse, je ne vais pas passer par 4 chemins, je n'ai rien compris.
Le truc c'est que je n'y connais rien à la programmation, en dehors d'un batch simplissime ou d'une automatisation d'installation, je suis incompétent. J'ai une formation de support info et je n'ai eu que des bases sur les scripts.

Là je me retrouve avec un doc qui explique a moitié rien, sachant que c'est la première fois que j'essaie de me servir d'une dll. C'est limite si je sais à quoi ça sert ...

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 11:58
par jchd
Sans doc précise n'espère pas trop utiliser une dll, surtout que la doc de celle-ci n'est apparemment pas trouvable facilement (aucune référence google).

Contournant ce problème-là, quelles infos système cherches-tu à récupérer ?

@sksbir,
Ce que tu proposes ne fonctionne qu'avec les DLLs enregistrant une interface COM. Tu ne peux pas créer un objet avec une DLL "de base" qui ne renseigne pas cette interface. La méthode est donc très limitée.

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 12:27
par Netriann
Bon, je vais essayer de fournir un maximum d'info.
1- je suis stagiaire à la cpam donc j’évite de donner trop d'information.
2-j'ai un manuel sous les yeux qui dis : "api-sso est une surcouche aux api accessmaster (gestion des autorisation sur l'ensemble de la cpam) de BULL (?)"
3- le but de la démarche est de renseigner un fichier csv avec nom d'utilisateur et un compteur du nombre de connexion de cette utilisateur sur un PC.
exemple :
X12345;Martin-12345;192.168.0.1;123 (nombre de connexion de martin sur x12345)

et donc grâce a cette dll (avec sso_getparam) je dois extraire le numéro d'utilisateur de martin.

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 12:57
par sksbir
jchd a écrit : @sksbir,
Ce que tu proposes ne fonctionne qu'avec les DLLs enregistrant une interface COM. Tu ne peux pas créer un objet avec une DLL "de base" qui ne renseigne pas cette interface. La méthode est donc très limitée.
Merci pour la précision. Donc par exemple, XStandard.MD5 c'est l'interface COM de MD5.dll , j'ai tout bon là ?

@netriam :
"API", "SSO", google est ton ami
"api-sso accessmaster" sur google --> http://www.mattreinfeldt.com/forums/ubb ... r_Informat --> http://www.evidian.com/iam/enterprise-sso/index.htm

mais tout ceci ne fait pas avancer le schmilblick, j'en ai peur... Il faut que tu retrouves la documentation sur cette API...

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 14:26
par jchd
OK on est bien là en dehors des infos système per se. Sans un coup de main d'une personne de la CPAM pouvant t'en dire plus sur cette DLL, ta quête est "donquichottesque".

Tout ce que j'ai trouvé sur cette DLL est sur un site japonais...

Re: [..] Aide sur DLLCALL

Posté : lun. 23 mai 2011 14:36
par Netriann
Bon bah merci quand même ... J'essayerai d'avoir plus d'info demain, là j'en ai marre ...