[win32] forcer une fenetre a rester en premier plan
tcok
Messages postés61Date d'inscriptionsamedi 7 juin 2003StatutMembreDernière intervention 3 août 2005
-
24 août 2003 à 22:08
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
25 août 2003 à 14:20
bonjour a tous,
voila mon probleme, je developpe une application qui protege l'ordinateur sur lequel elle tourne, pendant l'absence de l'utilisateur, en demandant un mot de passe.
donc g fait une fenetre plein écran avec une petite boite de dialogue pour le passe et ca marche impecable..
le probleme c que alt-tab reduit a neant tous mes efforts.
pourtant en cherchant g trouvé un truc qui aurait pu mettre fin a mon cauchemar :
SystemParametersInfo(
UINT uiAction, // system parameter to query or set
UINT uiParam, // depends on action to be taken
PVOID pvParam, // depends on action to be taken
UINT fWinIni // user profile update flag
);
avec SPI_SETFASTTASKSWITCH comme action.
mais MSDN dit que c obsolete et que le "FASTTASKSWITCH" est tout le temps operationnel maintenant
est ce que vous connaissez un moyen de contourner mon probleme, si oui, je vous en serais tre reconnaissant ;-)
merci d'avance pour vos lumieres !
ps: g deja teste dans WM_KILLFOCUS :
SetForegroundWindow()
SetActiveWindow()
SetWindowPos()
SetWindowPlacement()
le meilleur resultat c SetWindowPos car elle remet bien ma fenetre en premier plan, mais la barre de taches ne se cache pas donc ca sert a rien... :sad)
tcok
Messages postés61Date d'inscriptionsamedi 7 juin 2003StatutMembreDernière intervention 3 août 2005 25 août 2003 à 10:59
je connais rien aux hook, je les ai jamais utilisés. est ce que tu pourrais etre plus précis. je fais un hook sur ma fenetre avec une fonction dans une dll. pk faut il qu'elle soit dans une dll ?
merci
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 août 2003 à 11:03
Dans une dll parce qu'elle devra etre mappee sur tout processus tentant de demarrer, donc niveau systeme.
Regarde SetWindowsHookEx() dans MSDN, j'ai deja fait exemples.
BruNews, ciao...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 août 2003 à 11:24
A toi de voir ce qui te convient dans la dll mais ATTENTION, enregistre bien ton travail avant les essais !!!
On peut faire des trucs fantastiques (au sens propre) avec un hook systeme.
BruNews, ciao...
tcok
Messages postés61Date d'inscriptionsamedi 7 juin 2003StatutMembreDernière intervention 3 août 2005 25 août 2003 à 11:34
y'a un truc que je capte pas du tout. comment je fais pour savoir si c bien vers ma fenetre que le message est envoyé vu que je n'ais plus mon HWND dns la dll ? faut que je fasse
un FindWindow a chaque fois q'on rentre dans la fonction hook ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 août 2003 à 12:16
mets une variabe:
HWND myhwnd = 0;
tu exportes une func depuis la dll pour initialiser myhwnd avant lancement du hook.
A ce point tu devrais rencontrer un probleme de reconnaissance de ta hwnd.
Je te laisse trouver seul pour l'instant. On reprendra si tu arrives jusque la.
BruNews, ciao...
tcok
Messages postés61Date d'inscriptionsamedi 7 juin 2003StatutMembreDernière intervention 3 août 2005 25 août 2003 à 12:28
desole pour tous les messages en doubles, c ma connexion 56k qui a buguée...
lorsque je fais HWND myhwnd = 0;
et une fonction pour l'initialiser, ca ne marche pas non plus.
G l'impression que le myhwnd reste tjs egal a 0...
je comprends plus rien la !
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 août 2003 à 12:58
alors, comment faire ?
place le mywnd en segment partage entre toutes les instances. Je te laisse un peu fouiller, je crois que Kaid avait mis un exemple de cela. Si tu ne trouves pas je te donne.
BruNews, ciao...
tcok
Messages postés61Date d'inscriptionsamedi 7 juin 2003StatutMembreDernière intervention 3 août 2005 25 août 2003 à 13:24
oui peut etre, mais si le progrzmme est rentre dans le if
c bien que mywnd a ete initialise donc je peux traiter le hook sur ma fenetre non? a moins que je n'ais pas encore bien saisi le fonctionnent ...