Gestion Presse-Papier, saison 2!

Programmation d'applications complexes
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Gestion Presse-Papier, saison 2!

Message 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.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message 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 ;).
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Il plante dès le lancement.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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!
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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...
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
Répondre