| Wrapper autour de KGF.dll par procédures | |
|
|
|
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 0:15 | |
| Voilà ce que ça donne chez moi: Et chez les autres ? Avez-vous essayé ? | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 0:25 | |
| J'ai essayé et çà fonctionne ... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 0:29 | |
| Merci, Ygeronimi. Et je ne sais pas du tout ce qui empêche le programme de marcher chez Papydall. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 0:59 | |
| Je ne sais pas non plus, si c'était un oubli d'insérer KGF_Sub.bas il aurait une erreur dans l'appel de la procédure. à moins que...mais non si c'était pas la bonne version ce serait la même erreur puisque la fonction n'existerait pas. j' avoue que je ne vois pas non plus, en plus je ne sais pas sous quelle version de windows il est mais je ne crois pas que ce soit un problème de version cela fonctionne chez toi sous XP. A moins que ce soit un défaut de librairie de Delphi. la fonction utilise une de ses librairie et papydall n'a pas installé Delphi... ( ce n'est qu'une supposition ) | |
|
| |
Invité Invité
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 1:44 | |
| Juste pour dire que chez moi, ça ne foctionne pas non plus. Et pourtant je pense avoir fait ce qui était possible de faire. J'abandonne pour l'instant. C'était juste pour voir, mais l'utilité pour l'instant, j'en ai pas besoin. J'ai pas pris le bon post. J'était sur speak! désolé. |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 2:16 | |
| J’ai testé presque toutes les fonctions contenues dans Demo_KGF_SUB.bas et voici le résultat ( les fonctions non mentionnées ci-après sont OK) : 2 - RealRegistryKey ---- > tester ==== > message 1. ERROR3 – Help ---- > tester ==== > il ne se passe rien 39 – IPCSendMessage ---- > tester ==== > il ne se passe rien 57 – LoadFileIntoPlayer(2) ---- > tester ==== > il ne se passe rien 58 – PlayPlayer(3) ---- > tester ==== > il ne se passe rien 59 – PausePlayer(4) ---- > tester ==== > il ne se passe rien 60 – StopPlayer(4) ---- > tester ==== > il ne se passe rien 134 – Speak ---- > tester ==== > message Prêt puis il ne se passe rien 147 – SetBrowser ---- > tester ==== > message FireFox est choisi148 – AttachBrowserToWindow ---- > tester ==== > PLANTAGE DU SYSTEME149 – LoadBrowserToWindow ---- >tester ==== > ouvre Internet Explorer157 – LoadDLL ---- > tester ==== > message Not correct arithmetic expression. Line 2528178 – SetSpeaker ---- > tester ---- > Activer le son ---- > Appliquer ==== > il ne se passe rien ========================================================== @ygeronimi Je suis sous XP ; j’ai DELPHI installé, j’ai bien inséré KGF_SUB.bas et j’ai la bonne version. J’ai les voix de Pierre et de Veronique en plus de l’oncle SAM | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 4:08 | |
| As tu essayé de redémarrer ton ordi pour forcer une remise à zéro ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 9:51 | |
| Fonction 3 - Help: voici ce que ça donne: à condition d'avoir KGF.hlp installé dans le même dossier 39 - IPCSendMEssage: voici ce que ça donne: Pour toutes les fonctions ayant des chiffres entre parenthèses derrière leur nom: cela indique l'ordre dans lequel il faut les utiliser, puisqu'ils forment un groupe logique cohérent. Exemple: le player. Avant de pouvoir utiliser le player, il faut: - commencer par 54 - CreatePlayer (1) ce qui place un player dans la form 0 - utiliser 55 MovePlayer (2) pour le placer à un endroit convenable de la form - utiliser LoadFileIntoPlayer (2) pour charger une photo ou video dans le player - utiliser PlayPlayer (3) pour afficher la photo ou jouer la video - à partir de ce moment, on peut utiliser une des fonctions PausePlayer, StopPlayer, MutePlayer et VolumePlayer, toutes en (4), pour piloter le fonctionnement - utiliser STopPlayer pour tout arrêter et supprimer le player de la form 157 - LoadDLL: il y avait effectivement une erreur: dans la ligne - Code:
-
LoadDLL% = dll_call1("LoadDLL",adr(dll$$)) il y avait un $$ - un oublie d'édition. C'est corrigé. Pour le reste, mystère. As-tu Firefox ? Ou utilises-tu Internet Explorer ? La fonction AttachBrowserToWindow prend le browser actif (celui qui est en cours) et le place à l'intérieur de la form 0. Si le browser actif est Internet Explorer, ce sera lui. la fonction LoadBrowserToWindow agit de façon similaire, mais elle démarre un nouveau browser qu'elle charge ensuite dans la form 0. Tout cela agit sur le browser par défaut défini pour l'utilisateur. La fonction SetBrowser sert à agir sur un browser autre ce le browser par défaut, par exemple sur Firefox si Internet Explorer est le browser par défaut. Mais pour qu'elle marche, il faut donner le chemin d'accès correct au browser. Cela est visible dans demo_KGF_SUB.bas: - Code:
-
case 147 s$ = "C:\Program Files\Mozilla Firefox\Firefox.exe" s$ = "C:\Program Files\Internet Explorer\iexplore.exe" SetBrowser("Firefox",s$) ' SetBrowser("IExplore ",s$) message "Firefox est choisi" ' message "Internet Explorer est choisi"
D'ailleurs, vérifie chez toi: je crois avoir oublié d'enlever l'apostrophe devant la ligne 1245 de demo_SUB_KGF.bas pour activer Firefox. C'est corrigé sur MyDrive, mais il suffit que tu enlèves l'apostrophe chez toi. En réalité, me message venait bien, mais le chemin d'accès n'était pas chargé, d'où le plantage... Merci d'avoir testé. Cela m'aide à avancer. J'espère que les informations ci-dessus aideront à mieux prendre l'outil en main. | |
|
| |
Invité Invité
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 12:22 | |
| - klaus a écrit:
- Pour ceux qui ont une difficulté avec le mot anglais "wrapper": cela signifie "enveloppe". C'est une couche écrite en Panoramic pur qui s'intercale entre le programme application et la DLL, cachant ainsi les appels à dll_callx de Panoramic et offrant une interface plus intuitive.
J'avais pas vu ta réponse. Depuis je me suis réveillé, et je me rappèle maintenant qu'avant de faire de l'informatique, dans les années 80, j'avais une sorte de stylo pour faire du wrappage avec une bobine de fil émaillé, pour faire des petits montages électroniques. |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 12:39 | |
| @ papydall & Klaus, Je n'ai pas testé toutes les fonctions aussi consciencieusement que papydall mais seulement quelques unes que j' utilise régulièrement. Comme je ne voudrai pas avoir dit une bêtise alors que pas toutes fonctions fonctionnent, je vais reprendre les tests un par un. Je pense vous donnez mes conclusions d'ici ce soir car aujourd'hui, c'est le "frigo day" ... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 12:47 | |
| Ouaouuuuuh ! J'espère que tu seras plus indulgent avec moi qu'avec tes poules ! (sans mauvais jeu de mots...) | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 14:32 | |
| Bon ! j'en suis au 27 et la seule "fatal error" est au No 20 et pour cause le dossier "Documents and Settings" n'existe pas chez W7 Edit 1 : 27 & 30 "erreur de sequence" Edit 2 : 40 & 41 ....j'attends encore que le curseur arrête de tourner en rond... Une fois le player tué je suis obligé de relancé démo.....pour le faire réapparaitre.... bref je fais une pause....j'en suis au player... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 15:02 | |
| Pour le 20: remplace dans - Code:
-
case 20 FolderSelect("C:\Documents and settings\",0) le dossier par "C:\" ou le dossier de ton choix piur 27 et 30: même remarque que pour Papydall: fais dans l'ordre: 28 - 30 - 27 - 29. Regarde les noms des fonctions - tu comprendras. le 27 déclenche un évènement comme si 'lon avait fait un clic gauche sur le mémo. pour 40: il devrair afficher 2 messages successifs: 1. demo_KGF_SUB est actif 2. demo KGF_SUB n'est pas actif Compare avec la caption de la form 0... pour 41: il tente de lancer Not'epad et la Calculette Windows. J'ai mis les chemins d'accès suivants: - Code:
-
1: ShellExecute(0, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ; 2: ShellExecute(0, 'open', 'c:\Windows\System32\Calc.exe', nil, nil, SW_SHOWNORMAL) ; Si tu as d'autres chemins, donne-moi ta version Windows et les chemins corrects chez toi. Je les mettrai dans KGF.dll et ça marchera. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 15:41 | |
| Merci Klaus
Je verrais tout ça ce soir. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 18:39 | |
| @ Klaus, 40 | Les chemins sont les mêmes pour Note Pad et Calc chez W7 Je pense...mais je ne suis pas sûr....que il essaye de réduire avant d'avoir finit d'ouvrir et donc provoque le curseur qui tourne en rond un simple display dans KGF_Sub.bas entre les deux fonctions devrait arranger l'histoire | | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 18:56 | |
| Veux-tu faire l'essai stp ? car chez moi, pas de problème ! Ceci dit, la fonction 40 teste si le programme demo_KGF_sub est actif. Notepad et Calculette sont chargées par la fonction 41, dans demi_KGF_SUB: - Code:
-
case 41 LoadProgramMinimized(1,handle(0)) message "Le handle du NotePad est "+str$(LoadProgramMinimized%) LoadProgramMinimized(2,handle(0)) message "Le handle de la calculette est "+str$(LoadProgramMinimized%) case 42 Tu peux insérer un DISPLAY devant les deux commande MESSAGE", mais à mon avis, cela ne changera rien, car DISPLAY fait une attente tant que les affichages causées par Panoramic ne sont pas terminées. Or, dans notre cas, ce n'est pas Panoramic qui gère cela. L'attente du démarrage du notepad ou de la calculette est déjà faite dans la DLL. As-tu regardé si tu aperçois deux petites fenêtres réduites en bas de la form 0 ? cela a l'aspect suivant: Et pour chacun de ces programmes, un message affiche le handle. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 19:12 | |
| @ Klaus,
La réduction de notepad ce fait bien mais il se met à pédaler dans la semoule pour réduire calc | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 19:20 | |
| Alors, c'est un problème lié à la caption de la fenêtre de la calculatrice. Peux-tu me dire quel est le titre le la fenêtre de la calculatrice chez toi ? | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 19:27 | |
| Le titre de la fenêtre de la calculatrice est : "Calculatrice" Maintenant je remarque que :
apparition (ouverture) de note pad réduction de note pad fenêtre de panoramic "demo...." est au premier plan apparition (ouverture) de Calc la fenêtre de panoramic " demo..." reste au premier plan le curseur se met à tourner en rond ( ce qui correspond au sablier sous XP)
je pense que la fonction prend le handle de la fenêtre Panoramic " demo..." alors que c'est Calc qui est visé | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 19:50 | |
| Le source de la fonction LoadProgramMinimized est celui-ci: - Code:
-
function LoadProgramMinimized(xcode:integer; hnd:HWND): integer; stdcall; export; { xcode: 1=Notepad 2=Calc
} var hnd1, hnd2: Hwnd; begin case xcode of 1: ShellExecute(0, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ; 2: ShellExecute(0, 'open', 'c:\Windows\System32\Calc.exe', nil, nil, SW_SHOWNORMAL) ; end; hnd1 := hnd; hnd2 := 0; repeat case xcode of 1: hnd2 := FindWindow('Notepad',nil); 2: hnd2 := FindWindow('SciCalc','Calculatrice'); else result := 0; exit; end; until hnd2<>0; XSetParent(hnd2,hnd1); ShowWindow(hnd2,SW_MINIMIZE); result := hnd2; { retourner le handle du process qu'on vient de lancer } end; Tu vois que Calculatrice et Notepad sont gérés de façon absolument identique. Peu importe si la fenêtre esn en avant-plan ou non - dès qu'elle existe, la fonction FindWindow (un API MicroSoft) renvoie son handle et je reconnais sa présence. Peux_tu poster une capture d'écran globale (par la touche "Impécr Syst" sans ctrl, alt ni shift) pour que je me rende compte de ce qui se passe ? | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 20:02 | |
| | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 20:50 | |
| OK. Merci de ton effort. Pourrais-tu télécharger KGF.dll à nouveau et réessayer ? | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 5 Oct 2012 - 20:59 | |
| J' ai cette version : Je vais re télécharger | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| |
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Wrapper autour de KGF.dll par procédures Ven 5 Oct 2012 - 21:22 | |
| YESSSSSSSSSS ! Merci pour ton aide ! C'est comme ça qu'on avance. Tu veux savoir d'où venait le problème ? Alors regarde la version actuelle du code de la fonction: - Code:
-
function LoadProgramMinimized(xcode:integer; hnd:HWND): integer; stdcall; export; { xcode: 1=Notepad 2=Calc
} var hnd1, hnd2: Hwnd; begin case xcode of 1: ShellExecute(0, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ; 2: ShellExecute(0, 'open', 'c:\Windows\System32\Calc.exe', nil, nil, SW_SHOWNORMAL) ; end; hnd1 := hnd; hnd2 := 0; repeat case xcode of 1: hnd2 := FindWindow('Notepad',nil); 2: hnd2 := FindWindow(nil,'Calculatrice'); else result := 0; exit; end; until hnd2<>0; XSetParent(hnd2,hnd1); ShowWindow(hnd2,SW_MINIMIZE); result := hnd2; { retourner le handle du process qu'on vient de lancer } end;
Tu peux constater que pour la calculatrice, la mention Scicalc a disparu au profit de nil (ce qui signifie "rien". Scicalc était censé être le nom générique de la fenêtre de type calculatrice. Apparemment, sous W7, ce nom a changé. En l'enlevant, cela marche. Tant mieux. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Wrapper autour de KGF.dll par procédures | |
| |
|
| |
| Wrapper autour de KGF.dll par procédures | |
|