Clicker automatiquement sur les Fenetre "service affichage des message" (NETSEND [Résolu]

Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
- - Dernière réponse : cs_gnugnu
Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
- 12 oct. 2004 à 22:15
Salut tout le monde alors voila comme le titre l'indique je voudrais savoir comment faire sous vb pour faire un appli qui clique automatiquement sur les fenetres netsend
Ne me dite pas que la chose la plus simple serait de desactiver le service mais c'est pour l'utiliser a l'ecole (je ne suis pas admin et les flood ça part de tous les coté de ma classe :/)
et puis je voudrais avancer niveau programmation aussi alors ça pourrait m'aider
voila merchu ^^
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
3
Merci
Je viens de retrouver un code. Pour le tester, une form avec un timer (timer1) et tu colles le code suivant dans la form.
Là, le timer est règlé sur 1s mais tu peux mettre un autre intervalle sachant que c'est en milisecondes. D'autre part, dans l'exemple, c'est la calculatrice que je referme, à la place de "calculatrice", tu mets le titre de la fenêtre que tu veux refermer (pour netsend, je ne sais pas). Faut prendre celui qui est dans le caption de la fenêtre.

'Fonction API pour trouver la fenetre
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Fonction API pour envoyer un message à la fenetre trouvée
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_CLOSE = &H10

Private Sub Form_Load()
Me.Visible = False
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Fermer_Fenetre "Calculatrice"
End Sub

Private Sub Fermer_Fenetre(titre As String)
Dim WinWnd As Long

  ' Recherche de la fenêtre
  WinWnd = FindWindow(vbNullString, titre)
  If WinWnd = 0 Then Exit Sub
  ' Fermeture de la fenêtre
  PostMessage WinWnd, WM_CLOSE, 0&, 0&
  
End Sub


Dis moi si ça te va.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 217 internautes nous ont dit merci ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
3
Merci
Un copain vient de m'indiquer un truc, essaie toujours :

Parait qu'il faut mettre un espace à la fin, donc au lieu de :
"Service Affichage des messages"
ça serait :
"Service Affichage des messages "

Cordialement, CanisLupus

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 217 internautes nous ont dit merci ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
Salut

Pour la simulation de click, tu peux voir CETTE PAGE , le problème est que tes fenêtres ne doivent pas s'afficher au même endroit à chaque fois.

Donc, si j'ai bien compris, c'est d'un système anti popup dont tu as besoin. Je crois que j'ai ça quelquepart. Je ne veux pas te donner de fausses joies, mais je vais essayer de le retrouver.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
0
Merci
Je jette un oeil a ton lien, et c'est gentil pour chercher ça de ton coté.
mercu : d
Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
0
Merci
Merciiiiii c'est exactement ce que je recherchais mais par contre ça ne marche pas avec les fenetres net send :/
avec la calculatrice, explorer, msn, c'est parfait sauf ça :(
pour que tu as la fenetre net send sous tes yeux faut faire
executer > "net send ton_ip message"

la caption c'est "Service Affichage des messages"
Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
0
Merci
En fait il detecte pas la fenetre ou arrive pas a trouvé son nom, je comprends pas :(
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
Je ne peux pas tester car je suis en congé et n'ai pas XP chez moi.
Si tu mets "Service Affichage des messages" à la place de "Calculatrice" ça ne marche pas ?
Va falloir que je m'installe un service de message pour voir.

Cordialement, CanisLupus
Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
0
Merci
Nan ça marche pas avec "Service Affichage des messages"
alors que tous les autres si, je trouve ça bizarre :/
gnu x(
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
Sur mon système, je n'ai que WinPopup et ça fonctionne.
A la place de "Service Affichage des messages" essaie peut-être "Messenger Service" des fois que ....

Sinon, j'ai un code qui liste toutes les fenêtres (visibles ou non) de ton système ainsi que le nom de leur classe. Si ça t'interesse, le voilà :

'Dans une form avec une lixtbox(list1) (prévoir large)
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean

Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
Dim TitreFenetre As String, LongueurTitre As Long
Dim ClassName As String

  ' Récupération de la longueur du titre
  LongueurTitre = GetWindowTextLength(hwnd)
  ' Création buffer
  TitreFenetre = Space(LongueurTitre)
  ' Récup du titre
  GetWindowText hwnd, TitreFenetre, LongueurTitre + 1
  ' Création buffer
  ClassName = Space(256)
  ' Récup du nom de classe de la fenetre
  Call GetClassName(hwnd, ClassName, Len(ClassName))

  If TitreFenetre <> "" Then  Form1.List1.AddItem "TITRE " & TitreFenetre & " : CLASSE " & Split(ClassName, Chr(0))(0)
  End If
  
  ' On continue l'énumeration
  EnumWindowsProc = True
  
End Function

Private Sub Form_Load()
  EnumWindows AddressOf EnumWindowsProc, ByVal 0&

End Sub


Avec ça, peut-être que tu pourras repérer le vrai titre de ta fenetre netsend.

Si tu enlèves le 'If TitreFenetre <> "" Then' et le 'end if', tu listeras plein d'autres fenêtres invisibles et sans titre telles que les tooltip par exemple.

Au fait, j'y pense, la fenetre netsend, il y a une croix en haut à droite ? Ou on en sort qu'en cliquant sur OK ?

Cordialement, CanisLupus
Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
0
Merci
Jvais regarder tout ça et jte tiens au courant, mercii bien
Messages postés
13
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2004
0
Merci
Ahhhhhh ça marchee fallait bien mettre un espace au truc : ))
merci beaucoup CanisLupus : ))
éhéh : D