Problême avec une fentre ouverte sur un autre fenetre

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Problême avec une fentre ouverte sur un autre fenetre

Message par LOULOU25 »

Le code suivant :

Code : Tout sélectionner

Procedure Affiche(libelle.s )
  If OpenWindow(0,0,0,370,100,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Information ProdiCIC PLus V5.1.17") And CreateGadgetList(WindowID(0)) 
    SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)
    If  LoadFont(1, "@MS arial", 10,#PB_Font_HighQuality | #PB_Font_Bold)
      SetGadgetFont(#PB_Default,FontID())   ; Set the loaded Arial 16 font as new standard 
    EndIf 
    ButtonGadget(1,160, 70, 60, 20, "&OK",#PB_Button_Toggle    ) 
    TextGadget(0, 10, 10,360,80,libelle) 
    
    Repeat  
      EventID.l = WaitWindowEvent() 
      Select EventID 
        Case #PB_EventCloseWindow 
          Break 
          
        Case #PB_EventGadget      ;Per Maus 
          Break 
          
      EndSelect
      
    ForEver    
    CloseWindow(0) 
  EndIf 
  
EndProcedure
Me fait perdre le focus sur la fenetre principale lorsque j'ai cliqué sur OK. En fait je voudrais envoyer un message à l'écran informant l'utilisateur du déroulement de la procédure, mais il semble que ceci contrarie ensuite la la lecture des fenetres.
Quelqu'un aurait-il une solution
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message par ZapMan »

Sans le code qui gère ta fenêtre principale, il n'est pas possible de faire de test !
Les idées bêtes qui me viennent sont :
- vérifier que tu as bien un UseWindow(#FenetrePrincipale) qui s'éxecute aprés la fermeture de ta fenêtre secondaire
- utiliser MessageRequester au lieu de ta procédure
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

En fait si j'utilise Message Requester , la fenetre crée n'aura pas le focus en raison du programme qui tourne en premier plan et qui utilise autoitx.dll c'est la raison pour laquelle j'avais crée celà
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Y a un truc de bizarre, car si tu fermes une fenêtre, automatiquement la première reprend le focus, chez moi pas de problème.T'as combien de fenêtres ouvertes?

Le code complet serait mieux!

:)
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

Je veux bien te filer le code mais il y a plus de 3000 lignes et en plus j'utilise un autre language de programmation qui s'appele Autoitx. Le connnais-tu ?
ce qui se passe exactement :
_ Lorsque j'envoie un message a l'aide de cette fonction et que je clique sur OK celà me géle l'écran
- A ce moment Autoix reprend la main et teste l'apparition d'une fenetre qui n'arrive pas et bloqie le programme,
- Lorsque j'enléve le message le programme continue sans générer aucun problême
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

un petit usewindow(#fenetreprincipale) à la fin

et j'ai un doute affreux sur les constantes des fen ? celle-ci est à 0, les autres aussi ?
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)]
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

Le Soldat Inconnu a écrit :un petit usewindow(#fenetreprincipale) à la fin

et j'ai un doute affreux sur les constantes des fen ? celle-ci est à 0, les autres aussi ?
En fait il faut que j'exprime correctement mon problême. Je lance Pure Basic et dans le même temps lance la librairie Autoitx qui me sert a automatiser les entrées clavier. Mon problême de fenetre survient lorsque j'ai lancé un tiers programme dans autoitx en superposition de PureBasic et que j'ouvre une fenetre PureBasic. A ce moment là en fermant la fenetre le programme ne sait plus ou il se trouve et bloque la fenetre autoitx. Lorsque je casse le programme pure basic avec le gestionnaire de tache alors le programme lancé avec autoitx se dévérouille
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Alors la, je comprens plus rien ...
peut-être qu'une petite copie d'écran avec commentaires permmettrait d'éclairer ma lanterne (fait moi un dessin en gros :lol: )
parceque ton autoitx, ça me parle pas
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)]
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

Le Soldat Inconnu a écrit :Alors la, je comprens plus rien ...
peut-être qu'une petite copie d'écran avec commentaires permettrait d'éclairer ma lanterne (fait moi un dessin en gros :lol: )
parceque ton autoitx, ça me parle pas
AutoItx est une dll qui permet de piloter à distance une application. Grace à cette dll tu peux automatiser complétement l'installation d'un logiciel car les fonctions incluses permettent de lire le titre d'une fenetre, de remplir automatiquement des champs de saisie, c'es l'équivalent spécialisé des fonctions Windows de PureBasic mais beaucoup plus puissante.
Je pense que mon problême devrait se résoudre via les threads, mais je ne suis pas assez costaud pour pouvoir le faire et je pense que toi , Soldat Inconnu tu peux me dépannner.
En clair je lance PureBasic sans ouverture de fenetre, une fonction de ma dll lance un programme quelconque et lui envoie des instructions (ex Send("!F4"). A un moment je veux envoyer un message d'erreur envoyé par PureBasic par dessus la fenetre du programme lance et c'est là que j'ais mon problême de gel d'écran car lorsque je clique sur OK la fenetre se ferme mais il semb le que je ne revienne pas sur le programme lancé mais sur PureBasic en tâche de fond.
Désolé si je ne suis pas clair mais je n'arrrive pas mieux a exprimer la chose.
Une url peux t-aider qui décrit Autoitx.dll : http://www.hiddensoft.com
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message par ZapMan »

Je compatis avec le Soldat. Franchement, c'est pas facile de t'aider sur ce coup là, à moins de passer 4 heures à dépiauter ton AutoIx, récupérer ton code et voir se qui se passe (et encore... 4 heures, je suis surement optimiste...)

Comme je n'ai pas le courage d'aller aussi loin, je vais juste te dire ce que me dit mon intuition : ton problème ne vient pas de ton programme PureBasic mais du reste.

Voilà, je ne sais pas si c'est vrai, et si ça l'est, je ne sais pas si ça peut t'aider mais j'aurais été au bout de mes ressources.

Bonne chance.
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Répondre