Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
861 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Donner le focus a une appli ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Donner le focus a une appli ?

n°1615317
getget
Il y en a qui ont essayé ...
Posté le 26-09-2007 à 01:07:24  profilanswer
 

Bonjour, je veux faire une petite appli qui tourne en tache de fond et qui donne le focus à une autre appli si aucun clic de souris n'a été detecté depuis plus de 5s (en tout, peut importe ou on clique) :)
 
Déja, est ce que je peux faire ca en VB ?
Ensuite, j'ai trouvé la fonction                                                 SetForegroundWindow(), mais le parametre a passer (Hwnd), je n'ai aucune idée d'ou et comment le trouver :/
Et pour finir, est ce que mon programme peut ne pas avoir d'interface ? (une sorte de "service windows" )
 
Merci.


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
mood
Publicité
Posté le 26-09-2007 à 01:07:24  profilanswer
 

n°1615378
jpcheck
Pioupiou
Posté le 26-09-2007 à 10:16:49  profilanswer
 

bonjour,
en regardant un peu sur google, j'ai trouvé ca :
http://www.vbfrance.com/infomsg_API-SOURIS_11318.aspx
 
ca devrait t'aider à mon avis

n°1615416
tegu
Posté le 26-09-2007 à 11:28:57  profilanswer
 

Si ton programme n'a pas d'interface, tu ne peux pas gérer les événements de souris qui y sont liés : il faut un identifiant d'interface pour capturer les événements de ta souris ; c'est le handle (le paramètre hWnd qu'on te demande).
Comment pourrais-tu cliquer dans une application sans interface ?
Et si tu as une interface il me semble qu'avec un timer et les événements de souris tu dois pourvoir t'en sortir.
Dans Windows, on ne clique jamais n'importe où, mais toujours sur une fenêtre.

 

Ou alors un truc m'a échappé dans tes explications.

 



Message édité par tegu le 26-09-2007 à 11:30:33
n°1615559
getget
Il y en a qui ont essayé ...
Posté le 26-09-2007 à 15:26:53  profilanswer
 

Je m'explique plus clairement :)

 

J'ai un Pc avec windows media center (XP), en biécran.

 

Sur l'ecran 1, il y a toujours le media center de lancé, sur l'écran 2, une appli de domotique que je suis en train de faire, avec des boutons a cliquer (écran tactile).

 

Bref, si on clique quelque part sur l'écran 2, la fenêtre de media center perd le focus, et la télécommande (qui émule des frappes clavier) ne fonctionne plus, je suis obligé de cliquer sur la fenetre du media center.

 

Moi je voudrais que si au bout de 5s on a  pas cliqué (peut importe ou), on remette l'application Media center au 1er plan, et on lui donne le focus (ce qui rétablit la télécommande).

 

A priori donc, pas besoin d'interface :)

 

Je regarde ton lien jpcheck :)


Message édité par getget le 26-09-2007 à 15:29:55

---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°1615613
tegu
Posté le 26-09-2007 à 16:31:54  profilanswer
 

Ben moi je te dis que sans interface tu ne peux pas gérer les événements de la souris facilement.
 
Il te faut examiner la pile d'événements Windows, constater qu'aucun clic de souris n'est en cours de traitement, vérifier qu'un clic éventuellement traité  ne concerne pas justement media center (je ne sais pas comment sont gérés les bi-écrans en matière d'événement souris ; juste un prb de coordonnées pê), que ton timer de 5s n'est pas encore écoulé et sinon, enfin, passer le focus à media center.
 
Déjà, rien que la première partie (pile d'événements windows) est ardue pour un débutant en prog windows, puisque VB n'inclut aucune fonction de base pour le faire.
Il faut passer par des APIs Windows qui sont plus complexes à manipuler (pas forcément la syntaxe, mais l'ensemble déclaration/utilisation/comportement/gestion d'erreur).
 
Je te propose quelques clés de recherche sur le net pour t'aider si tu veux :
_TrackMouseEvent
SetCapture
ReleaseCapture
GetCapture
GetForegroundWindow (tu as déjà le Set :) )
CallWindowProcA (fonction de gestion par défaut des événements de la fenêtre, pour interception des événements)
SetWindowLong
FindWindow ...
 
Ça n'est pas infaisable, mais je ne vois pas de solution simple.
Peut-être trouveras-tu un prog tout fait et adaptable à tes besoins ou quelqu'un d'autre aura de meilleures suggestions
 
 

n°1615743
getget
Il y en a qui ont essayé ...
Posté le 26-09-2007 à 20:55:05  profilanswer
 

Merci quiand même de t'y interesser, je vais fouiller :)
 
Au pire, je redonne le focus toutes les 5 s sans gérer les clics :D


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Donner le focus a une appli ?

 

Sujets relatifs
Dévellopement d'une appli en PHP et C# ?[Batch] Lancement d'une appli sans bloquer le deroulement de script
archi JEE : découpler couche persistance sur un autre serveur d'appliJ2ME : Appli ne prenant pas tout l'écran ? (widget)
[Java Web Start]Appli sur un serveur sans faire du httpScript wsh, Focus sur application avec session vérouillée (mi-résolu)
Javascript : Donner focus à un <ul>[Access] Comment donner un titre à un graphique croisé dynamique?
[WINDOWS XP] - Ne recherche plus - dev pour petite appli facturation 
Plus de sujets relatifs à : [VB] Donner le focus a une appli ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR