[Résolu] AppelDLL32
Developpeur WDF
Inscrit:
26/07/2004 09:01
Post(s): 127
Bonjour,
le problème est que je n'obtiens un résultat qu'en mode "débogage Pas à pas".

Je tente d'utiliser la dll PinfoRaccourci

Voici le code :
leRaccourci est une chaîne ASCIIZ sur 256  
chemin est une chaîne ASCIIZ sur 256
description est une chaîne ASCIIZ sur 256
argument est une chaîne ASCIIZ sur 256
repTravail est une chaîne ASCIIZ sur 256
hotkey est un entier

sCheminEXE, sRes sont des Chaînes
i, Nb sont des entiers

// Récupération du nombre de fichiers
Nb = ExplorerRécupère(_EVE.wParam)

// Récupération de tous les fichiers
POUR i = 1 A Nb
	leRaccourci=ExplorerRécupère(_EVE.wParam, i)
	
	SI Droite(leRaccourci,3)="lnk" ALORS
		chRes=AppelDLL32("PInfoRaccourci", "_InfoRaccourci", &leRaccourci, &chemin, &description, &argument, &repTravail, &hotkey)
	FIN
	sCheminEXE=fCheminLong(chemin)

	...
	...
	Traitement
	...
	...

FIN


Donc quand il y a résultat, sRes=0, alors que dans le cas contraire je me retrouve avec une valeur négative, et chemin=""

Voilà, si quelqu'un possède une piste à partager, parce que là, je bloque.

Bonne soirée à tout le monde

Contribution le : 28/02/2007 18:57

Edité par drcharly93 sur 2/3/2007 13:31:08
_________________
Faut pas trop se prendre au sérieux ...
Créer un fichier PDF de la contribution Imprimer


Re: AppelDLL32
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Bonjour,

Au lieu d'utiliser le débogeur, utiliser plutot Trace pour visualiser la valeur de vos variables dans la boucle.
Si le trace fait apparaître vos valeurs c'est qu'il y a un soucis dans votre code.

Bon dév.,

Totof

Contribution le : 01/03/2007 09:41
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: AppelDLL32
Developpeur WDF
Inscrit:
26/07/2004 09:01
Post(s): 127
Bonjour,
merci pour la remarque, mais lorsque j'indique "qu'en mode ...", c'est que les autres manières de récupérer l'information ont été tentées :
Trace, Info, MultiTâche avant et/ou après avec ou sans temps de latence, affiliation d'une valeur à la variable Hotkey (un problème a été résolu de cette manière avec l'utilisation d'une autre dll, vu sur WDForge).

Peut-être devrais-je envoyer la problématique au Support Technique de Windev alors.

En tout cas merci quand même.

Contribution le : 01/03/2007 09:54
_________________
Faut pas trop se prendre au sérieux ...
Créer un fichier PDF de la contribution Imprimer


Re: AppelDLL32
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Bonjour,

Peut être qu'en remplacant ceci :

SI Droite(leRaccourci,3)="lnk" ALORS

Par cela :

SI Majuscule(Droite(leRaccourci,3) )="LNK" ALORS

Cela changera peut être la donne, car la gestion des extensions de fichiers varie de temps en temps sous windows entre majuscule et minuscule (j'ai déjà eut le cas).

Bon dév.,

totof

Contribution le : 01/03/2007 12:14
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: AppelDLL32
Developpeur WDF
Inscrit:
26/07/2004 09:01
Post(s): 127
Bon,
je pense que le problème vient de la dll, enfin disons qu'il doit y avoir quelque chose dedans qui ne plait pas à windev.
J'ai testé "shel32", avec la fonction "SHGetSpecialFolderPathA" pour récupérer les Répertoires Spéciaux de Windows, et ça fonctionne.

Tant qu'à faire, voici le code :)

hwndOwner est un entier
lpszPath est une chaîne ASCIIZ sur 256
nFolder est un entier
f_Create est un entier

nDLL est un entier
i est un entier

nDLL=ChargeDLL("shell32.dll")
SI nDLL=0 ALORS
	Erreur(ErreurInfo())
	RETOUR
FIN

POUR i=0 A 59
	nFolder=i
	AppelDLL32("shell32.dll","SHGetSpecialFolderPathA", hwndOwner, &lpszPath, nFolder, f_Create)
	SI lpszPath<>"" ET Position(Majuscule(lpszPath),"ALL USERS")=0 ALORS
		Trace(i+" - "+lpszPath+" - ")
	FIN
FIN	

DéchargeDLL(nDLL)


A noter qu'ici on ne récupère que le dossier de l'utilisateur en cours, et que seules certaines valeurs comprises entre 0 et 59 retournent une information.

Voilà voilà.


Ah oui, et pour le link, ça a toujours fonctionné, mais en effet c'est une prudence que je vais ajouter :)

Contribution le : 01/03/2007 12:52
_________________
Faut pas trop se prendre au sérieux ...
Créer un fichier PDF de la contribution Imprimer


Re: AppelDLL32
Developpeur WDF
Inscrit:
26/07/2004 09:01
Post(s): 127
Bon alors le problème est résolu, par une astuce : j'utilise AppelDLL32 via une procédure :

Citation :

leRaccourci=ExplorerRécupère(_EVE.wParam, i)
chemin=PG_AppellDLL(leRaccourci)
PROCEDURE PG_AppellDLL(pgLeRaccourci est une chaîne ASCIIZ sur 256)
chemin est une chaîne ASCIIZ sur 256
description est une chaîne ASCIIZ sur 256
argument est une chaîne ASCIIZ sur 256
repTravail est une chaîne ASCIIZ sur 256
hotkey est un entier //voir MSDN pour plus d'information


AppelDLL32("PInfoRaccourci.dll", "_InfoRaccourci", &pgLeRaccourci, &chemin, &description, &argument, &repTravail, &hotkey)

RENVOYER chemin



Voilà qui se termine bien :)

Mais pas longtemps, ça a fonctionné une dizaine de fois seulement, je vais faire appel au ST.

Contribution le : 02/03/2007 11:08

Edité par veDengaG sur 2/3/2007 11:54:07
_________________
Faut pas trop se prendre au sérieux ...
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2