FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Gérer les fenêtres Internet - Page 2 Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Gérer les fenêtres Internet - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Gérer les fenêtres Internet - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Gérer les fenêtres Internet - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Gérer les fenêtres Internet - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Gérer les fenêtres Internet - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Gérer les fenêtres Internet - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Gérer les fenêtres Internet - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Gérer les fenêtres Internet - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Gérer les fenêtres Internet - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Gérer les fenêtres Internet - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Gérer les fenêtres Internet - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Gérer les fenêtres Internet - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Gérer les fenêtres Internet - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Gérer les fenêtres Internet - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

 

 Gérer les fenêtres Internet

Aller en bas 
+2
JL35
jjn4
6 participants
Aller à la page : Précédent  1, 2
AuteurMessage
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyLun 12 Sep 2022 - 17:51

Bonjour à tous

Insérer un fenêtre dans un form panoramic:
Code:
dim res%,hnd_enfant%,hndparent%
dim c
dll_on "user32"

form 1
width 1,508 : height 1,532
top 1,100
set_focus 1
hndparent%=handle(1)
pause 50

 execute "https://www.youtube.com/watch?v=IwdeqVmXlHk"
' execute "notepad"  :'

' ------------------------------------------------------------------------------
res% = dll_call1("BlockInput",1) :' bloquer clavier + souris
pause 300 :' petite pause pour windows
repeat
   c=c+1 : caption 0,str$(c)
   hnd_enfant%=dll_call0("GetForegroundWindow")
   pause 1
   if c>=1000 then exit_repeat
until hnd_enfant%<>hndparent%
if c<1000
   res% = dll_call1("SetFocus",hnd_enfant%)
   res% = DLL_call2("SetParent",hnd_enfant%,hndparent%)
   res% = dll_call6("MoveWindow",hnd_enfant%,0,0,500,500,1)
   res% = dll_call1("BlockInput",0) :' débloquer clavier + souris
else
   res% = dll_call1("BlockInput",0) :' débloquer clavier + souris
   print "Erreur!"
end_if

' ------------------------------------------------------------------------------

' voir le début de la vidéo
 pause 30000
 pause 30000
delete 1
dll_off



END
Par contre, je ne garantie pas la stabilité, il faudra faire des tests
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyLun 12 Sep 2022 - 21:39

Ouaaaouhh !
Superbe !!!!!
J'ai fait un premier essai ce soir,
en réglant la durée à 3mn56s, pour Lux aeterna
Ca marche impecc !!!
Je verrai ça plus en détail demain !
(sachant que je ne connais quand même pas grand chose aux dll et aux handle...)
Silverman, tu es un héros !!! Laughing
king
Au fait, qu'est-ce que tu entends, quand tu dis
qu'il pourrait y avoir un problème de stabilité ?
scratch
5 ou 10 minutes plus tard :
Finalement, je crois que j'ai trouvé ce que tu entendais par là :
Progressivement, la souris s'est mise en réagir de façon + ou - bloquée,
l'écran est devenu tout gris,
l'ordinateur s'est mis à émettre des bip-bip-bip-bip...
Et tout cela n'a pu être réglé que par un reset.
Effectivement, il y a une certaine instabilité, tu avais raison ! Laughing
Saurais-tu comment faire pour résoudre cela ?
study
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyMar 13 Sep 2022 - 5:59

Hélas non Sad
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyMar 13 Sep 2022 - 12:55

Ah, ben zut alors !
C'est vraiment dommage parce que
les perspectives étaient excellentes !
Shocked
Quelqu'un d'autre saurait faire cela ?
Crying or Very sad
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyMar 13 Sep 2022 - 16:20

Bonjour les amis !
N'étant pas actif ces derniers mois, il m'arrive de jetter un oeil sur le forum de temps en temps.

jjn4 a écrit:
Quelqu'un d'autre saurait faire cela ?

Moi, pas vraiment; par contre je peux simuler l'appui des touches <CTRL> + W pour fermer le dernier onglet ouvert dans le navigateur.

Voici mon code suffisamment documenté que tu peux l'adapter à tes besoins.

Lisez d'abord le code avant de le lancer.

Code:

rem ============================================================================
rem                   Simulation de <CTRL> + W
rem       pour fermer le dernier onglet ouvert dans le navigateur
rem Ref : mon programme plus général que vous pouvez trouver ici
rem https://panoramic.1fr1.net/t5437-simuler-lappui-d-une-touche-ou-combinaison-de-touches?highlight=simuler
rem ============================================================================
dim VK_CONTROL%      : ' Code virtuel de la touche <CTRL>
dim VK_W%            : ' Code virtuel de la touche W
dim KEYEVENTF_KEYUP% : ' Flag touche relachée          
VK_CONTROL%      = hex("11") : ' Touche CTRL
VK_W%            = hex("57") : ' Touche W
KEYEVENTF_KEYUP% = hex("02") : ' Touche relachée
 
' Exemple d'utilisation
execute "https://www.youtube.com/watch?v=pCpLWbHVNhk"
' Cette vidéo dure 1 heure, 10 minutes et 59 secondes
' On va en visionner seulement les 30 premières secondes puis on ferme
' l'onglet par simulation de <CTRL> + W
pause 30*1000 : ' attendre 30 s

' Simulation de CTRL + W  <--- fermer le dernier onglet ouvert
Keybd(VK_CONTROL%,hex("9D"),0 , 0)              : ' Touche Ctrl Pressée
Keybd(VK_W%, hex("9E"),0 , 0)                   : ' Touche ‘W’ Pressée
Keybd(VK_W%, hex("9E"), KEYEVENTF_KEYUP%,0)     : ' Touche ‘W’ Relachée
Keybd(VK_CONTROL%,hex("9D"),KEYEVENTF_KEYUP%,0) : ' Touche Ctrl Relachée

terminate : ' On ferme la boutique
rem ============================================================================
' Paramètres :
' bVK%   : Virtual keycode that has to be send as key input
' bScan% : Scan code is the hardware key code for the key (make and break codes)
' dwFlags% : A set of flag bits that specify various aspects of function operation.
' dwExtraInfo% : 32-bit extra information along with the keyboard input.
SUB Keybd(bVk%,bScan%,dwFlags%,dwExtraInfo%)
   dim_local ret%
   dll_on "user32"                                                        
   ret% = dll_call4("keybd_event",bVk%,bScan%,dwFlags%,dwExtraInfo%)
   dll_off
END_SUB
rem ============================================================================

EDIT:
pour les navigateurs :
Firefox, Google Chrome, Microsoft Edge, Microsofr Internet Explorer 11, Mozilla Thunderbird, Opera, etc.
<CTRL> + W  ferme l'onglet actif

Attention :
Pour Windows XP (notre ami silverman y est encore)
<CTRL> + W  ne ferme pas l'onglet actif, mais ouvre une nouvelle fenêtre.
A vérifier par silverman.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyMer 14 Sep 2022 - 14:10

Superbe, Papydall !
Ca ferme bien une fenêtre et ça ne semble pas instable.
rabbit
Malheureusement, je ne peux pas l'utiliser,
car cela ferme la dernière fenêtre utilisée.
Alors supposons que le programme exe lance une musique de 2 heures
que pendant ce temps, l'utilisateur n'en reste pas bouche bée
et, tout en écoutant la musique, s'occupe les mains en ouvrant
l'éditeur Panoramic (par exemple) et se mette à programmer dur-dur...
Au bout de 2 heures, mon pg va lui fermer son éditeur Panoramic
de façon intempestive et la fenêtre Internet va continuer tranquillement à être là.
Je ne peux tout de même pas faire un truc pareil à quelqu'un
qui utilise les programmes que je concocte !
Crying or Very sad lol!
Non, la solution de Silverman était chouette.
Dommage que personne ne sache la stabiliser !
scratch Sad
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyJeu 15 Sep 2022 - 11:13

@papydall
<CTRL> + W ferme l'onglet actif aussi avec XP Wink

@jjn4
J'ai testé mon code pendant 45 min, et je n'ai pas eu de pb. Il y a peut-être eu une fuite de mémoire avec ton OS. Comment as tu modifié le code pour fair tes tests?
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyJeu 15 Sep 2022 - 13:23

@Silverman:
Comme je ne comprends rien aux dll,
je n'ai pas changé grand chose.
Juste la durée d'attente à la fin :
Code:
' voir le début de la vidéo
 pause 30000
 pause 30000
 pause 30000
 pause 30000
 pause 30000
 pause 30000
 pause 30000
 pause 26000
 delete 1
dll_off
Pour que ça ferme juste à la fin de la musique.
D'abord, ça a bien marché, plusieurs fois, même.
Et puis, sont apparusdes premiers bip-bip qui se sont arrêtés
Et finalement comme que je l'ai déjà décrit plus haut.
Mais le fait que ça marche bien sur XP
signifie-t-il nécessairement que ça va le faire sur Windows 10 ?
scratch
Nota:
Citation :
une fuite de mémoire avec ton OS
??????????????????????????
scratch scratch scratch scratch Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyJeu 15 Sep 2022 - 15:44

Une fuite de mémoire c'est quand celle-ci se rempli jusqu'à saturer

J'ai remanié le code car quelques variables n'étaient pas initialisées. Je ne crois pas que ça va changer grand chose, mais essaye au cas où...
Code:
form 1
width 1,508 : height 1,532
top 1,100

load_video(1,"https://www.youtube.com/watch?v=IwdeqVmXlHk")

' voir le début de la vidéo
patienter(356)  :' qq secondes
delete 1




END
sub patienter(secondes%)
 dim_local nts%,nte%
   secondes%=secondes%*1000
   nts%=number_ticks
   nte%=nts%+secondes%
   repeat
      pause 100
   until number_ticks>=nte%
end_sub


sub load_video(Frm,adress$)
if object_exists(Frm)=0 or object_type(Frm)<>7
   print "Form inexistant"
   exit_sub
else
   dim_local res%,hnd_enfant%,hndparent%
   dim_local titre_fenetre$
   dim_local cpt%
  
   peek_reverse
   dll_on "user32"
   to_foreground Frm
   set_focus Frm
   hndparent%=handle(Frm)
  
   titre_fenetre$=string$(260," ")

   pause 50
   execute adress$

' ------------------------------------------------------------------------------
   res% = dll_call1("BlockInput",1) :' bloquer clavier + souris
   pause 300 :' petite pause pour windows
   cpt%=0
   hnd_enfant%=0
   repeat
      cpt%=cpt%+1
      caption 0,str$(cpt%)
      hnd_enfant%=dll_call0("GetForegroundWindow")
      pause 1
      if cpt%>=1000 then exit_repeat
   until hnd_enfant%<>hndparent%
   if cpt%<1000
      res% = dll_call1("SetFocus",hnd_enfant%)
      res% = DLL_call2("SetParent",hnd_enfant%,hndparent%)
      res% = dll_call6("MoveWindow",hnd_enfant%,0,0,width(Frm)-8,height(Frm)-32,1)
      res% = dll_call3("GetWindowTextA",hnd_enfant%,peek32(adr(titre_fenetre$)),260)
      caption Frm,trim$(titre_fenetre$)
   else
      caption Frm,"Erreur!"
   end_if
   res% = dll_call1("BlockInput",0) :' débloquer clavier + souris
   dll_off
' ------------------------------------------------------------------------------
end_if
end_sub

Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyJeu 15 Sep 2022 - 22:03

Ah, là c'est superbe !!!
J'ai essayé pendant une heure et c'est resté stable.
(je me suis permis de changer le patienter(356) en 236)
Je vais voir demain si c'est toujours le cas à plus long terme.
Bravo, Silverman !
cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptySam 17 Sep 2022 - 19:14

Je l'ai installé dans le programme que je concocte, (en Windows 10)
ça marche très bien et c'est super !!!
king
Malheureusement, je l'ai aussi installé sur un Windows 8 que j'ai,
et là, ça ne marche pas, la fenêtre Internet reste à l'extérieur.
Je ne comprends pas pourquoi.
Si ça marche en XP et en Windows 10,
logiquement, cela devrait marcher en Windows 8.
scratch
D'ailleurs, à ce propos, je n'ai pas de Windows 7,
est-ce que quelqu'un qui a ce système d'exploitation
peut me dire si ça marche chez lui, et si c'est stable sur la durée.
Merci d'avance !
cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyMer 21 Sep 2022 - 12:39

Ah, j'ai trouvé le problème que j'avais avec Windows 8
C'est que pour les ordinateurs très lents,
il faut augmenter le temps du pause 300 du pg de Silverman.
Comme ça, ça marche. Alors sur Windows 7, ça doit sûrement marcher aussi.
jocolor
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyMer 21 Sep 2022 - 13:07

Tu n'est pas obligé de modifier la tempo de 300 millisecondes, essaye plutôt cette modification:
Code:
repeat
      cpt%=cpt%+1
      caption 0,str$(cpt%)
      pause 100
      hnd_enfant%=dll_call0("GetForegroundWindow")
      if cpt%>=100 then exit_repeat
until hnd_enfant%<>hndparent%
Cette partie sert à attendre l'ouverture du navigateur, ici environ 10 sec, maximum(0.1sec * 100 répétitions = 10sec). Si ce temps est trop court, tu peux essayer 150 répétitions, etc...
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyJeu 22 Sep 2022 - 13:40

Ton nouveau code, c'est à mettre à la place du PAUSE 300
ou à la place du code presque identique situé après :
Code:
      repeat
         cpt%=cpt%+1
         caption 0,str$(cpt%)
         hnd_enfant%=dll_call0("GetForegroundWindow")
         pause 1
         if cpt%>=1000 then exit_repeat
      until hnd_enfant%<>hndparent%
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyVen 23 Sep 2022 - 6:06

silverman a écrit:
... essaye plutôt cette modification:
C'est une modification de l'existant, pas un remplacement, ni un rajout Wink
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyVen 23 Sep 2022 - 15:41

Ok, bien compris.
Et effectivement, ça marche.
Ceci dit, je préfère l'ancienne formule, qui marche mieux.
Voici comment je l'ai goupillée :
Code:
     peek_reverse
      dll_on "user32"
      to_foreground frm
      set_focus frm
      hndparent%=handle(frm)
      titre_fenetre$=string$(260," ")
      pause 50
      execute adress$
      res% = dll_call1("BlockInput",1)
      if VEO%<2500
         pause 300
      else
         pause int(VEO%/2)
      end_if
      cpt%=0
      hnd_enfant%=0
      timer_off 560
      repeat
         cpt%=cpt%+1
         caption 0,str$(cpt%)
         hnd_enfant%=dll_call0("GetForegroundWindow")
         pause 1
         if cpt%>=1000 then exit_repeat
      until hnd_enfant%<>hndparent%
Ah, VEO%, c'est la mesure de la vitesse de l'ordinateur.
Ca marche mieux, parce que j'ai mis le form 1 en top -190
(pour qu'il empiète moins de place)
avec deux boutons Bas et Haut
(l'un remettant en top 0 et l'autre en top -190)
de façon à pouvoir utiliser les mises en plein écran d'Internet
ou remettre la fenêtre en place comme au début et rendre le reste utilisable.
Eh bien, avec la nouvelle méthode, Internet apparaît automatiquement en top 0
et rien à faire pour le mettre en -190
Alors qu'avec l'ancienne méthode, ça marche tout seul,
il se met automatiquement en -190 et les 2 boutons l'articulent impeccablement.
(je précise que c'est sur le Windows 8 lent, qu'il fait cela,
sur le Windows 10 rapide, les deux méthodes marchent bien)
Après tout, l'important, c'est que ça marche !  Laughing  Laughing  Laughing
Mais il faut bien admettre que c'est bien délicat, tous les dll.
jocolor  scratch  geek
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptySam 24 Sep 2022 - 11:39

jjn4 a écrit:
..., peut-on faire en sorte que la fenêtre Internet
s'insère dans une fenêtre Panoramic...
J'ai amélioré le code, il est plus efficace pour la détection de l'onglet du navigateur et ça fonctionnera mieux sur les ordinateurs lents sans à avoir à bidouiller des temporisations. Le SUB requière de connaitre une partie du titre(un mot) de la video:
Code:
form 1
width 1,508 : height 1,532
top 1,100

load_video(1,"https://www.youtube.com/watch?v=IwdeqVmXlHk","voces")

' voir le début de la vidéo
patienter(30)  :' qq secondes
delete 1




END
sub patienter(secondes%)
 dim_local nts%,nte%
   secondes%=secondes%*1000
   nts%=number_ticks
   nte%=nts%+secondes%
   repeat
      pause 100
   until number_ticks>=nte%
end_sub


sub load_video(Frm,adress$,titre_partiel$)
if object_exists(Frm)=0 or object_type(Frm)<>7
   print "Form inexistant"
   exit_sub
else
   dim_local res%,hnd_enfant%,hndparent%
   dim_local titre_fenetre$
   dim_local cpt%
  
   peek_reverse
   dll_on "user32"
   to_foreground Frm
   set_focus Frm
   hndparent%=handle(Frm)
  
   titre_fenetre$=string$(260," ")

   pause 50
   execute adress$

' ------------------------------------------------------------------------------
   res% = dll_call1("BlockInput",1) :' bloquer clavier + souris
   pause 300 :' petite pause pour windows
  
   ' rechercher la fenètre
   cpt%=0
   hnd_enfant%=0
   repeat
      cpt%=cpt%+1
      pause 100
      hnd_enfant%=dll_call0("GetForegroundWindow")
   until hnd_enfant%<>hndparent% or cpt%>=100
  
   ' rechercher le titre de la fenètre
   if cpt%<100
      res% = dll_call1("SetFocus",hnd_enfant%)
      repeat
         titre_fenetre$=string$(260," ")
         cpt%=cpt%+1
         pause 100
         res% = dll_call3("GetWindowTextA",hnd_enfant%,peek32(adr(titre_fenetre$)),260)
      until instr(upper$(titre_fenetre$),upper$(titre_partiel$))<>0 or cpt%>=600
      '
      ' attacher la fenètre à un form
      if cpt%<600
         res% = dll_call6("MoveWindow",hnd_enfant%,0,0,width(Frm)-8,height(Frm)-32,1)
         res% = DLL_call2("SetParent",hnd_enfant%,hndparent%)
         titre_fenetre$=trim$(titre_fenetre$)
         caption Frm,titre_fenetre$
      else
         titre_fenetre$=""
         caption Frm,"Titre pas trouvé!"
      end_if
   else
      titre_fenetre$=""
      caption Frm,"Fenètre pas trouvée!"
   end_if
  
   '
   res% = dll_call1("BlockInput",0) :' débloquer clavier + souris
   dll_off
' ------------------------------------------------------------------------------
end_if
end_sub





jjn4 a écrit:
Comment le programme Panoramic peut-il fermer cette fenêtre extérieure au programme ?
J'ai trouvé comment faire ça aussi. Le SUB est devenu une FNC qui requière de connaitre une partie du titre(un mot) de la video:
EDIT: 1 bug corrigé
Code:
dim handle%

left 0,1000


handle%=load_video%("https://www.youtube.com/watch?v=IwdeqVmXlHk","voces")

patienter(5)

Close_Form(handle%)



end
sub Close_Form(hnd%)
    dim_local WM_CLOSE%,res%
    WM_CLOSE% = 16
    dll_on "user32"
    res% = dll_call1("SetForegroundWindow",hnd%)
'    res% = dll_call1("SetFocus",hnd%)
    if res%<>0 and hnd% <> 0
      res% = dll_call4("PostMessageA",hnd%,WM_CLOSE%,0,0)
    else
      message "Fenêtre pas trouvée!"
    end_if
    dll_off
end_sub


sub patienter(secondes%)
 dim_local nts%,nte%
  secondes%=secondes%*1000
  nts%=number_ticks
  nte%=nts%+secondes%
  repeat
      pause 100
  until number_ticks>=nte%
end_sub


fnc load_video%(load_video_adress$,load_video_titre_partiel$)
  dim_local load_video_res%,load_video_hnd_enfant%,load_video_hndparent%
  dim_local load_video_titre_fenetre$
  dim_local load_video_cpt%
 
  peek_reverse
  dll_on "user32"

  to_foreground 0
  set_focus 0
  load_video_hndparent%=handle(0)
 
  load_video_titre_fenetre$=string$(260," ")

  pause 40
  execute load_video_adress$

' ------------------------------------------------------------------------------
  load_video_res% = dll_call1("BlockInput",1) :' bloquer clavier + souris
  pause 300 :' petite pause pour windows
 
  ' rechercher la fenêtre
  load_video_cpt%=0
  load_video_hnd_enfant%=0
  repeat
      load_video_cpt%=load_video_cpt%+1
      pause 100
      load_video_hnd_enfant%=dll_call0("GetForegroundWindow")
  until load_video_hnd_enfant%<>load_video_hndparent% or load_video_cpt%>=100
 
  ' rechercher le titre de la fenêtre
  if load_video_cpt%<100
      load_video_res% = dll_call1("SetFocus",load_video_hnd_enfant%)
      '
      load_video_cpt%=0
      repeat
        load_video_titre_fenetre$=string$(260," ")
        load_video_cpt%=load_video_cpt%+1
        pause 100
        load_video_res% = dll_call3("GetWindowTextA",load_video_hnd_enfant%,peek32(adr(load_video_titre_fenetre$)),260)
      until instr(upper$(load_video_titre_fenetre$),upper$(load_video_titre_partiel$))<>0 or load_video_cpt%>=600
      '
      if load_video_cpt%<600
        caption 0,trim$(load_video_titre_fenetre$)
      else
        caption 0,"Titre pas trouvé!"
      end_if
  else
      load_video_hnd_enfant%=0
      caption 0,"Fenêtre pas trouvée!"
  end_if
 
  '
  load_video_res% = dll_call1("BlockInput",0) :' débloquer clavier + souris
  dll_off
' ------------------------------------------------------------------------------

result load_video_hnd_enfant%
end_fnc



Dernière édition par silverman le Sam 24 Sep 2022 - 13:53, édité 1 fois
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptySam 24 Sep 2022 - 13:50

Silverman a écrit:
Le SUB requière de connaitre une partie du titre(un mot) de la video
Le problème, c'est que, (par exemple) dans :
"https://www.youtube.com/watch?v=IwdeqVmXlHk"
il n'y a pas "voice"
Et le programme qui lance la vidéo, ne peut pas deviner ce qui n'y est pas.
A la rigueur, il a quelques renseignements sur la vidéo,
comme dans l'exemple ci-dessus :
ELGAR Edward
Lux aeterna
Mais est-ce que les renseignements qu'il a, seront toujours dans le titre ?
scratch scratch scratch scratch scratch scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptySam 24 Sep 2022 - 13:59

Je ne sais pas comment fonctionne ton programme. Je pensais que tu cliquait dans un list sur un titre de video à regarder. C'est dommage parceque ça fonctionne super bien, même pour des vidéos lentes à charger.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptyDim 25 Sep 2022 - 14:07

Je vais essayer ta nouvelle méthode
en mettant les 3 premières lettres du
compositeur qui, en principe, devrait
être inclus dans le titre.
A voir, mais pas avant la semaine prochaine,
car là, je vais avoir des kms à parcourir !
alien
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 EmptySam 1 Oct 2022 - 16:29

Alors, j'ai essayé tes deux programmes :
le premier (que la fenêtre Internet s'insère dans une fenêtre Panoramic),
Il marche bien sur l'ordinateur rapide en Windows 10
et même en utilisant : « ELG » au lieu de « voice »
(pour ELGAR Edward - Lux aeterna).
Par contre, la fenêtre Youtube reste à l'extérieur de la fenêtre Panoramic
en cas d'utilisation sur l'ordinateur-tablette en Windoxs 8
sans doute encore une histoire de lenteur...
geek
Alors finalement, je vais garder la première formule
avec calcul de la vitesse de l'ordinateur et adaptation correspondante,
finalement, elle marche très bien sur les 2 ordinateurs.
jocolor
J'ai essayé aussi ta deuxième formule :
(Comment un programme Panoramic peut-il fermer une fenêtre extérieure au programme),
Ca marche super bien, bravo, Silverman !
cheers
Bon, mais comme cette hypothèse, c'était avant qu'on trouve
comment intégrer la fenêtre Youtube dans une fenêtre Panoramic,
de ce fait, elle ne sert plus à rien dans le cas de mon programme.
Mais ça reste une excellente astuce à mettre en réserve !!!
sunny
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Contenu sponsorisé





Gérer les fenêtres Internet - Page 2 Empty
MessageSujet: Re: Gérer les fenêtres Internet   Gérer les fenêtres Internet - Page 2 Empty

Revenir en haut Aller en bas
 
Gérer les fenêtres Internet
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» V3.06 du 23/05/2014: gérer le player VLC
» Gérer les dates de péremption
» Dll permettant de gérer la souris
» Fenetres filles
» HViever - comment gérer les attributs CSS inline ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: