Page 1 sur 1

Gestion Presse-Papier, saison 2!

Publié : ven. 17/déc./2004 21:20
par gansta93
Bonjour,

J'ai besoin de la mobilisation d'utilisateurs de WINDOWS XP.
J'en ai déjà parlé, Gestion Presse-Papier est mon programme principal.
Mais le problème, c'est qu'il ne marche pas sous XP.
La version actuelle, c'est à cause du manifest qui a un problème.
Mais la future, le problème à paremment, est tout autre...
svp, si vous pouviez le télécharger à http://gansta93.free.fr/anon/Setup-GPP.exe ça serait cool!
Les sources sont avec, il est OpenSource (même s'il n'en vaut suremant pas le coup).
Merci de me dire où ça coince, et comment je peux faire.

Merci d'avance.

Publié : ven. 17/déc./2004 22:05
par Heis Spiter
Alors, où ça coince : c'est la lib de Flype (CatchExeIcon) qui n'est pas comptatible XP (du moins les fonctions que tu utilise). Donc quoi faire... Bin éviter d'utiliser la lib, où demander à Flype de corriger ;).

Publié : ven. 17/déc./2004 22:08
par nico
Il plante dès le lancement.

Publié : sam. 18/déc./2004 0:11
par Le Soldat Inconnu
ligne 467, un "CloseGadgetList()" perdu :wink: a retirer

J'ai remplacé la lib de Flype par mes propres fonctions et le programme tourne sans souci sous XP (enfin, il tourne après ... , je vais me coucher)

Ligne 181 et 182

Code : Tout sélectionner

gppicon = ExtractLargeIconFile(GetProgramName())
StIcon = ExtractSmallIconFile(GetProgramName())
et voici les procedures associées

Code : Tout sélectionner

ProcedureDLL.l ExtractSmallIconFile(IconPath.s) ; Extraire l'icône 16*16 d'un fichier
  ; Cette procedure permet d'extraire l'ID de l'icône 16*16 associé au type de fichier ou au dossier dont l'adresse est IconPath
  SHGetFileInfo_(IconPath, 0, @InfosFile.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_SMALLICON)
  ProcedureReturn InfosFile\hIcon
EndProcedure

ProcedureDLL.l ExtractLargeIconFile(IconPath.s) ; Extraire l'icône 32*32 d'un fichier
  ; Cette procedure permet d'extraire l'ID de l'icône 32*32 associé au type de fichier ou au dossier dont l'adresse est IconPath
  SHGetFileInfo_(IconPath, 0, @InfosFile.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_LARGEICON)
  ProcedureReturn InfosFile\hIcon
EndProcedure

ProcedureDLL.s GetProgramName() ; Récupère le nom du programme
  ExeName.s = Space(255)
  GetModuleFileName_(0, @ExeName, 255)
  ProcedureReturn ExeName
EndProcedure

Publié : sam. 18/déc./2004 11:52
par gansta93
Merci beaucoup, fini le moi de galaire... tu me sauve.
Il y a deux trucs que je ne comprand pas:
  1. Pourquoi utiliser ProcedureDLL au lieu de Procedure? peut-être une question stupide mais bon... je veux comprendre :-).
  2. J'ai fais une recherche de tout les CloseGadgetList() mais tout ceux que j'ai trouvé m'avaient l'air de servire...
    Oui tu m'avais indiqué un numérot de ligne, mais bon... après avoir ajouter les procedures, je ne tombais plus sur ça :-).
Encore merci!

Publié : sam. 18/déc./2004 17:50
par Le Soldat Inconnu
ProcedureDLL, c'est que chez moi, j'ai mis c'est procedure dans un lib avec Tailbite, donc il faut une ProcedureDLL mais tu peux mettre Procedure, ça ne change strictement rien

Pour le CloseGadgetList, il était après la fermeture d'une fenêtre, entre un CloseWindow( et un UseWindow( dans une procedure très longue, me rappelle plus du nom qui commence par un test pour savoir si la fenêtre existe déjà.
justement vers la fin du IF Else EndIF qui contient ce test.
Je m'en suis rendu compte en mettant en forme le code, il y avait un décalage du au CloseGadgetList()


Sinon, tu devrais mettre les librairies utilisées avec ta source (vu que ton programme est OpenSource), notamment celle qui contient le test pour savoir si le programme est déjà ouvert

Publié : sam. 18/déc./2004 18:27
par gansta93
C'est vrai, je n'y avais pas pensé...
Je vais modifier ça maintenant.
En ce qui concerne les constantes, je vais changer les noms pour éviter de mettre des trucs en commentairs pour rien...

Publié : sam. 18/déc./2004 18:42
par gansta93
C'est fait.
Attention le lien dirrect est maintenant http://gansta93.free.fr/Setup-GPP.exe car c'est l'installation dispo en téléchargement.

Encore merci :-D.