[VB6] Savoir si un prog tourne en plein écran

Résolu
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 - 10 oct. 2006 à 20:32
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 10 oct. 2006 à 22:36
Bonjour,

Je cherche une fonction qui détecte si un prog tourne en plein écran.

Merci.

Neo_Fr

19 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 oct. 2006 à 21:30
Si c'est TON propre prog, mets un flag à l'activation plein écran et prob réglé.


Généralement pas QUE l'état maximzed qu'on entend par 'plein écran'.


stat = GetWindowLong(hwnd, GWL_STYLE);
If (stat And (WS_BORDER Or WS_CAPTION)) = 0 Then
  if stat And WS_MAXIMIZE Then FORTECHANCEPLEINECRAN
End If


Il y a bien sur plus radical:
GetClientRect() et vérifier que sa taille correspond à la taille bureau.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 oct. 2006 à 22:16
idem à GetWindowRect

en regardant MSDN tu aurais vu qu'elles ont la même signature.

ciao...
BruNews, MVP VC++
3
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
10 oct. 2006 à 21:10
Heu, si je te répond : regarde ton écran, j'ai bon ? Sùrement non, donc précise un peu ce que tu veux.
A la limite, si c'est ton prog tu peux tester si ta fenêtre principale est en plein écran avec :

If TaForm.WindowState = vbMaximized Then ....
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 21:16
En fait je cherche une fonction qui puisse m'indiquer si il ya un programme
 (pas le mien) sur la machine qui tourne en plein écran

Neo_Fr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 oct. 2006 à 21:37
Salut,
En plein écran tout simple, tu peux utiliser cette api :

' Déclaration de la fonction API
Private Declare Function GetWindowRect Lib "user32" ( _
ByVal hwnd As Long, lpRect As RECT) As Long
Declare Function GetActiveWindow Lib "user32" () As Long

' Déclaration du type
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

dim R as RECT
Tu appelle donc GetWindowRect(GetActiveWindow(), R)
Et tu compares le rectangle obtenu dans R avec ton écran (objet Screen).

Maintenant je ne sais pas si ca va marcher pour un jeu ou une application utilisant directX... Pour détecter si une application directX tourne, j'ai une idée mais c'est peut-être pas la meilleure :
Si je me rappelle bien, lorsque je travaillais sur une application de Motion Blur, je faisais des tests en sautant l'instruction habituellement systématique du Device.Clear.
Et j'avais remarqué que lorsque je jouais à warcraft et que je minimisais mon jeu puis que continuais mes tests, et bien mon buffer non-nettoyé contenait les dernières images affichées de Warcraft. Tu pourrais donc essayer de créer une device 3d, puis de regarder si son buffer contient quelque chose... Ca me semble un peu farfelu mais bon :p

Julien.
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 21:41
Merci de vos réponsses je vais essayer tout ca,
En fait je suis en train de faire un keylogger et j'aimerais pouvoir l'aretter quand
un jeu tourne pour ne pas enregistrer des touches qui ne serviraient à rien...

Neo_Fr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 oct. 2006 à 21:43
GetWindowRect donne dimensions avec bords et barre de titre, si c'est le cas ce n'est pas du plein écran.

ciao...
BruNews, MVP VC++
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 21:45
Et il n'existe pas une fonction pour mesurer l'interieur d'une fenetre?

Neo_Fr
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 oct. 2006 à 21:48
Ha ouais ben oui justement c'est un peu ce que je me disais, je sais pas ce que vont donner les apis windows sur des fenetres directX... Donne nous des nouvelles !
BruNews -> Ha oui juste merci !

Julien.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 oct. 2006 à 21:49
GetClientRect() , deja mis plus haut.
Donne la taille de la zone client (hors bordure et barre de titre).

ciao...
BruNews, MVP VC++
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 21:51
Et ca pourrais marcher pour detecter un jeu?

Neo_Fr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 oct. 2006 à 22:01
Aucune idée je n'en ai pas, enfin si VC++ mais bon....

ciao...
BruNews, MVP VC++
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 22:05
Merci de vos réponsses je vais me debrouiller avec GetClientRect( )
Juste une dernière petit question : qu'elle est la déclaration de cette fonction
Declare Function GetClienRect Lib "?????" ....
Merci encore
Neo_Fr
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 22:17
Merci

Neo_Fr
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
10 oct. 2006 à 22:20
Bah, et puis faire un keylogger en vb6, avec ou sans API, bonne chance.
Au passage, tu as cherché sur le site dans les codes avec "keylogger" comme mot clé ?
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 22:22
Oui mais le mien est trés complet...
De tt facon je ne connais pour l'instant que le PHP et VB6
Neo_Fr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 oct. 2006 à 22:28
ah c'est pour keylogger... je n'avais pas vu.
Cestes, "Veuillez lancer le setup de mon keylogger" trop drole.... Complet ou pas, c'est illusoire de penser en faire quoi que ce soit.
Tu connais déjà php et vb6, ok alors maintenant va donc apprendre le C, tu pourras faire de vrais progs.

ciao...
BruNews, MVP VC++
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
10 oct. 2006 à 22:32
J'avoue que mon keylogger a beaucoup de dépendences, mais le but est plus de me perfectionneren vb plutot que de faire un "vrai" keylogger,
Je suis en train de me lancer dans le C alors si par la meme occasion vous avez un
bon tuto a me proposer...
Neo_Fr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 oct. 2006 à 22:36
Demande sur le forum cppfrance, la question revient souvent. Bien voir que tu ne pourras pas faire l'économie de l'étude sérieuse dans un livre, le bas niveau ne peut pas s'aborder par tatonnements.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous