Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : lire le contenu d'un message box [ Divers / General ] (CrazyMan19)

jeudi 21 décembre 2006 à 23:03:45 | lire le contenu d'un message box

CrazyMan19


salut tt le monde
je vx un bout d code qui me permitteras de lire le contenu d'un message box affiché par une application , et merçi :)
Je suis né intelligent ... L'éducation me détruit ;)

jeudi 21 décembre 2006 à 23:06:30 | Re : lire le contenu d'un message box

Charles Racaud

Membre Club
Je veux que tu respecte le règlement.



__________
Kenji


vendredi 22 décembre 2006 à 18:35:37 | Re : lire le contenu d'un message box

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Tu dois pouvoir t'en sortir avec un peu de recherche sur le net.

A priori, il faut que tu commence avec une FindWindow pour récupérer un premier handle de ta MessageBox.

Ensuite, tu ne pourra pas apparement pas utiliser GetWindowText, qui ne permet pas de récupérer le texte contenu dans un contrôle d'une autre appli.

Il vat donc falloire que tu envoie directement un message WM_GETTEXT, avec SendMessage.

Bon courage.



vendredi 22 décembre 2006 à 22:00:51 | Re : lire le contenu d'un message box

CrazyMan19

j ai essayé avec GetForgroundWindow qui permetra de me passer le handle du msgbox afficher sur l ecran et puis le SendMessage avec le WM_GETTEXT mais le resultat et NULL tjs !!

Je suis né intelligent ... L'éducation me détruit ;)

vendredi 22 décembre 2006 à 22:58:59 | Re : lire le contenu d'un message box

CrazyMan19

en plus il me donne tjs le nom de l application ou du fenetre et nn pas le contenu u msgbox !!

Je suis né intelligent ... L'éducation me détruit ;)

samedi 23 décembre 2006 à 00:56:01 | Re : lire le contenu d'un message box

rt15

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Breuhm.
Charles Racaud a pas posté pour le plaisir
Merci d'adopter un langage non SMS.

Faut pas oublier que des codeux de tout âge se balade sur le fofo...et que les plus vieux sont pas les moins bons !

Vala qui devrait te satisfaire.
Ce code regarde périodiquement si une fenêtre portant un titre précis existe.
Si elle trouve cette fenêtre, alors elle en prend la première enfant, puis la dernière de ce niveau.
On tombe alors sur le contenu de la MsgBox, du moins sur les applis de VB6, avec ou sans icône, d'après les essais que j'ai fait.
Elle affiche le contenu dans une TextBox.
Le code est mal organisé, mais fonctionnel. Faudrait gérer un timer non visuel et tout mettre dans un module ou une classe je pense.

Dans une fiche avec une TextBox Text et un Timer Timer :
=================================================================================
Option Explicit

Private Const GW_CHILD = 5
Private Const GW_HWNDLAST = 1
Private Const WM_GETTEXT = &HD
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

Private Sub Timer_Timer()
  Dim AnBuffer As String * 200
 
  sCaption = "Titre"
  EnumWindows AddressOf EnumWindowsCallBack, 0
  If nHandle = 0 Then
    Text.Text = ""
  Else
    nHandle = GetWindow(nHandle, GW_CHILD)
    nHandle = GetWindow(nHandle, GW_HWNDLAST)
    SendMessage nHandle, WM_GETTEXT, 200, AnBuffer
    Text.Text = AnBuffer
  End If
End Sub

=================================================================================

Il faut aussi un module pour pouvoir utiliser AddressOf :
=================================================================================
Option Explicit

Public sCaption As String
Public nHandle As Long

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long


Public Function EnumWindowsCallBack(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  Dim AnBuffer As String * 200

  GetWindowText hwnd, AnBuffer, 200
  If Left(AnBuffer, Len(sCaption)) = sCaption Then
    EnumWindowsCallBack = False
    nHandle = hwnd
  Else
    nHandle = 0
    EnumWindowsCallBack = True
  End If
 
End Function
=================================================================================

Pour faire le test, on peut utiliser ce genre de code :
(Attention, ne pas tester l'appli avec une de ces MsgBox à elle : cela ne fonctionnerat pas)
=================================================================================
Private Sub Command_Click()
MsgBox "Contenu", 0, "Titre"
End Sub
=================================================================================





Cette discussion est classé dans : message, lire, box, contenu


Répondre à ce message

Sujets en rapport avec ce message

Comment modifier en temps reel un label ( ou un message box) [ par Clem ] Comment modifier en temps reel la caption d'un label (ou d'un message box ) en tapant le message que l'on veut voir apparaitre dans un message box ? Comment classé par ordre alphabétique le contenu d'une liste box ? [ par sebas ] Dans la première List box se trouvent les noms et dans la deuxième les prénoms, je voudrai que les nom soit classé par ordre alphabétique et que la de Comment enregistrer le contenu de plusieurs List box dans un seul fichier TXT ? [ par sebas ] Comment enregistrer le contenu de plusieurs List box dans un seul fichier TXT ? et les lire ensuite Position de la souris, click & message box [ par Wedge03 ] Salut,1- Dans un programme j'aimerais que l'utilisateur pusissent enregistrer, dans une variable, la position de la sourie a un moment précis.Pour cel Envoi de messages avec MAPI [ par Sophie ] Je fais un automatisme d'envoi de message, avec des adresses internet inclues dans le contenu du message.Je souhaiterais spécifié que le contenu du me Est-ce possible ??? [ par r3g3d1t ] je désire faire apparaitre un message box lorsque je désire fermer une application. donc, quand je click sur le X pour fermer l'application, un messag


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.