[R] DllCall et fenêtres

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
milka
Niveau 4
Niveau 4
Messages : 55
Enregistré le : sam. 03 avr. 2010 17:00
Status : Hors ligne

[R] DllCall et fenêtres

#1

Message par milka »

Bonjour à toutes et a tous, je suis un programmeur en herbe, et j'ai deux problèmes que je vais essayer de décrire au maximum.

- Problème N°1 : DllCall :
Tout d'abord, dans mon programme, j'ai besoin d'utiliser des images en arrière plan de fenêtres.
Je l'initialise bien comme ceci :

Code : Tout sélectionner

$Pic1 = GUICtrlCreatePic(@DesktopDir & "\image.jpg", 0, 0, 403, 190, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
C'est bien beau, mais si quelqu'un d'autre que moi l'essaye, soit il ne verra pas l'image, soit je serai obligé de lui envoyer pour qu'il puisse la voir. J'ai donc pensé à intégrer cette image dans une Dll avec le programme de Tlem (que je remercie fortement), mais comment ressortir l'image ?

J'ai trouvé le fonctionnement suivant :

Code : Tout sélectionner

DllCall("dll", "type de retour", "fonction")
Ce qui deverait me donner :

Code : Tout sélectionner

DllCall(@DesktopDir & "\MaDll.dll", "none", "image.jpg")
Mais ceci ne marche pas.

- Problème N°2 : Fonctions, boucles et fenêtres :
En simplifiant beaucoup, j'ai un code similaire à celui là :
► Afficher le texte
Ici, quand je clique sur un bouton a, b ou c; la fenêtre se ferme bien, mais après, la fenêtre essai ne répond plus aux boutons enfoncés.

Si vous pouviez m'éclaircir sur ces deux sujets, ca serait super :)
Amicalement, milka.
Modifié en dernier par milka le jeu. 20 janv. 2011 19:12, modifié 1 fois.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] DllCall et fenêtres

#2

Message par bloodwolff »

Moi personnellement pour inclure un image dans un .exe, j'utilise cet udf Le problème c'est qu'on ne voit pas l'image si le script n'est pas compilé. Si tu veux un exemple je l'avais utilisé dans ce script
Compte skype : bloodwolfff
Avatar du membre
milka
Niveau 4
Niveau 4
Messages : 55
Enregistré le : sam. 03 avr. 2010 17:00
Status : Hors ligne

Re: [..] DllCall et fenêtres

#3

Message par milka »

Merci pour ta réponse, mais je cherche une méthode d'explication sur DllCall, parce que je préfère trimbaler une dll plutôt que 10 images ;)
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] DllCall et fenêtres

#4

Message par bloodwolff »

Tu n'as pas lu ma réponse attentivement ! Les images sont stocké directement dans le .exe et tu n'as pas à trimbaler ni les images ni les dll, Et si tu tient à les stocker dans une dll ce n'est pas avec dllcall que tu y arrivera
Compte skype : bloodwolfff
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] DllCall et fenêtres

#5

Message par jchd »

FileInstall() fait exactement ça. Certes l'image n'est pas vue comme une resource, mais cette méthode n'a aucun inconvénient ni incompatibilité connue et restera supportée à l'identique ou mieux dans les futures versions d'AutoIt (il y en aura).
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] DllCall et fenêtres

#6

Message par bloodwolff »

Oui mais on doit installer l'image sur l'ordinateur cible :(
Compte skype : bloodwolfff
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] DllCall et fenêtres

#7

Message par jchd »

Un gros FileDelete() si on ne veut pas l'y laisser ne mange pas beaucoup de pain.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [..] DllCall et fenêtres

#8

Message par FernandG »

jchd a écrit :dans les futures versions d'AutoIt (il y en aura).
Peux-tu nous en dire d'avantage ? A quand la prochaine version ? Un apperçu des nouveautés ? :wink:
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] DllCall et fenêtres

#9

Message par jchd »

"Quoi" = bogues corrigés et ré-écriture de portions de code interne à AutoIt.
"Qui" = un peu moins de développeurs qu'avant. Rappel : la contribution à AutoIt est volontaire, pas contractuelle et repose donc sur les disponibilités des contributeurs d'UDFs et/ou des développeurs.
"Quand" = mystère.

AutoIt et sa cohorte d'UDFs est raisonnablement utilisable en l'état, mais faire évoluer le coeur demande quelques "réajustements" internes qui ne semblent pas tous triviaux. Un travail bâclé à ce niveau pourrait pénaliser lourdement l'avenir de ce merveilleux produit, donc autant éviter.

En un mot : patience.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] DllCall et fenêtres

#10

Message par Tlem »

L'utilisation d'une DLL tel que le souhaite milka, n'est pas dénué de bon sens ou d'intérêt.
Imaginez un exécutable qui est correctement développé et compilé et dont on ne souhaite pas exposer ou donner le code source.
Si vous devez modifier une des ressources, vous devez aussi re-compiler l'exécutable, alors que si la ressource est dans une DLL, seule la DLL peut être mise à jour. ;)

Bref, milka, vous trouverez votre bonheur ici : http://www.autoitscript.fr/forum/viewto ... f=11&t=310
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] DllCall et fenêtres

#11

Message par jchd »

Tlem,

Est-ce vrai qu'il n'y a plus d'éditeur-linker de resource capables de travailler avec seulement l'exécutable ?
Il n'y a pas si longtemps, on pouvait changer le contenu (pas la nature ni le nom ou l'index) d'une resource sans recompiler.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] DllCall et fenêtres

#12

Message par Tlem »

Oui, c'est toujours possible avec ResHacker, mais personnellement je trouve cela moins 'propre'. :mrgreen:

Sans compter que ça peut aussi poser des problèmes autres. Sans m'étaler, je prend le cas d'antivirus qui analyse un md5 (ou assimilé) du fichier exécutable et qui bloquerons la nouvelle version. ;)
Ensuite, comment être sure des ressources ajoutées dans tel ou tel
exécutable, puisque la version reste la même (à moins bien sur de se faire chi.. à modifier aussi cela dans les ressources).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre