Focus Window

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Focus Window

Message par Ekim »

Bonsoir à tous)

Actuellement je bloque sur un problème concernant le focus de ma fenêtre, en gros j'essaie de faire perdre volontairement le focus de ma fenêtre pour permettre à une autre fenêtre de passer devant, cette deuxième fenêtre ne fait pas partie de mon appli, il s'agit d'un programme tiers

Ma question est la suivante, y a t il une fonction prédéfinit nativement dans PB pour permettre à ma fenêtre de perdre son focus sans pour autant la faire descendre ?

Je vous remercie pour votre soutien ☺️
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Focus Window

Message par Ekim »

Il y a peut-être la solution de retrouver sa propre fenêtre pour ensuite manipuler le handle

Handle = FindWindow_(0,"ma fenêtre")

SetForegroundWindow_(Handle)

Sauf que la commande "SetForegroundWindow" met la fenêtre en avant et non pas en arrière comme je le souhaitais 🙁
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Focus Window

Message par case »

du coup si tu met le programme tier en avant ca marche pas ?puisque la tu n'utilise pas une commande purebasic mais une API windows?

sinon toujours avec les apis

Code : Tout sélectionner


win=OpenWindow(#PB_Any,0,0,500,500,"je vais tout en bas")
SetWindowPos_(WindowID(win),#HWND_BOTTOM,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
Repeat  
  ev=WaitWindowEvent(0)  
Until ev=#PB_Event_CloseWindow
Dernière modification par case le lun. 24/mai/2021 15:26, modifié 1 fois.
ImageImage
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Focus Window

Message par Ekim »

Salut @Case ton code est sympa et m'apprend des choses au passage)
Mais si j'ai bien compris, il n'est pas possible de faire autrement que de faire descendre la fenêtre ?

Peut-être en fouillant côté constante il y a la solution
#HWND_BOTTOM
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Focus Window

Message par Ollivier »

Une méthode non subversive sous Windows seulement consiste à détecter la fenêtre active avant d'ouvrir une fenêtre PureBasic avec GetForegroundWindow_().
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Focus Window

Message par Micoute »

Moi j'utilise IsWindow(fenetre).
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Focus Window

Message par case »

la fenêtre ne "descend" pas verticalement, elle se met en arrière plan, derrière toute les autre fenêtres.
ImageImage
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Focus Window

Message par Ekim »

Oui exact, plus certaines commandes ne semblent pas fonctionner avec toutes les applis((
Par exemple, au travail, on a un logiciel de gestion de stock qui semble être immunisé😭
La seule chose que je pourrais essayer est la sélection du texte contenu dans la fenêtre,

Donc si quelqu'un connaît les commandes qui peuvent intervenir ainsi, je suis preneur à 100%
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Focus Window

Message par Marc56 »

Plusieurs solutions:

1. Minimiser la fenêtre (dès l'ouverture ou après) donc la fenêtre précédente devient active.

Code : Tout sélectionner

SetWindowState(0, #PB_Window_Minimize)
2. Si l'application n'a pas besoin de l'utilisateur, faire une application console et la lancer par le planificateur de tâches (taskschd.msc) à l'ouverture de session, à une certaine heure etc.

:wink:
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Focus Window

Message par Ekim »

Salut @Matc56, carrément le planificateur ? 8O

Pour l'explication, j'essaye d'automatiser les différentes tâches sur l'appli pro, concernant les focus des fenêtres, je pense avoir la solution grâce à vous

Mais dorénavant, j'aimerais aller plus loin, pour cela mettre tout les armes de mon côté, c'est-à-dire, j'aimerais dans un deuxième temps capturer le texte de l'application (qui est en mode console), ceci me permettrait de ne pas reproduire la gestuelle constamment, mes doigts vous remercieront 😂🖖

Existerait il une ou des commandes spécifiques a sendmessage_ ou à keybd_event_ pour faire une sélection complète uniquement du contenu texte de la l'appli pro s'il vous plaît ?
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Focus Window

Message par Marc56 »

Ne pas confondre le planificateur et le gestionnaire de tâches. Le panificateur c'est la commande AT (ou maintenant schtasks.exe en ligne de commandes ou taskschd.msc en GUI), donc une façon de lancer un programme à une certaine heure ou en fonction d'évènements. Donc on peut s'en servir pour lancer un programme en arrière plan sans avoir à en faire un service.

Si ton programme console ne fait qu'afficher du texte et que tu n'a pas d'interaction, alors lances-le depuis ton programme PB (RunProgram) et récupère les lignes de sorties.
Regarde l'exemple donné par RunProgram()
https://www.purebasic.com/french/docume ... ogram.html
:wink:
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Focus Window

Message par Ekim »

J'y ai pensé au Runprogram mais cela ne fonctionne pas sur l'appli pro, aussitôt une alerte sécurité neutralise mon appli pb puis fait planter tout le Pc, il se met à ramer comme cela ne devrait pas être permis 😅

Mais par contre, il ne semble pas s'opposer au FindWindow_ 8)

Il faut vraiment que je trouve une alternative au Ctrl+A puis Ctrl+C via SendMessage ou keybd_event_ ou autre peu importe :wink:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Focus Window

Message par Ar-S »

C'est quoi ton soft ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Focus Window

Message par Ekim »

Lequel, soft perso ou de la boîte ?
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Focus Window

Message par Ekim »

Allo mars ici la terre
Répondre