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 : Intercepter les messages windows [ Windows / Autre ] (jagxx)

jeudi 15 mai 2008 à 16:14:10 | Intercepter les messages windows

jagxx

Membre Club
Bonjour,

Je me permets de créer un nouveau message bien que le dernier est du
05.05.08 et qu'il concerne le même sujet mais avec des petites modifications (Thème API).
J'ai posté sur plusieurs forums mais sans resultat et ne trouve pas
d'exemples sur le Net.

Je pense que la difficulté est justement de catcher les messages ...

J'aimerais intercepter les message Windows type WM_NCHITTEST d'une
application externe à ma Form afin de pouvoir le traiter dans WndProc
(NativeWindow) et rendre l'appli externe indeplacable. Voici mon code :

public partial class Form1 : Form
{
IntPtr hwnd;
public Form1()
{
InitializeComponent();
Process[] procs = Process.GetProcessesByName("calc");
if (procs.Length != 0)
{
hwnd = procs[0].MainWindowHandle;
}
else
MessageBox.Show("Calculatrice is not running.");

MyNativeWindow mnw = new MyNativeWindow(hwnd);
}

public class MyNativeWindow : NativeWindow
{
public MyNativeWindow(IntPtr hParent)
{
AssignHandle(hParent);
}
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x84:
base.WndProc(ref m);
if (m.Result == (IntPtr)2) // 2 = barre de titre
m.Result = (IntPtr)0;
break;
default:
base.WndProc(ref m);
break;
}
}
}
}

Aucun message arrive dans la methode WndProc.
Par contre si j'assigne le Handle de ma Form pour un essai, WndProc
intercepte tous les messages et ma Form devient indéplacable.

Comment intercepter les messages de l'appli externe ? Faut il rajouter un
evenement quelque part ou est ce parce que ce n'est pas le même Thread ?
Faut-il plutot utiliser un Hook global ?

Merci d'avance.

Jag

vendredi 16 mai 2008 à 11:14:45 | Re : Intercepter les messages windows

Bidou

Administrateur CodeS-SourceS
Bonjour,
Je ne suis pas spécialiste des API, mais je pense que tu es obligé de faire un hook global si tu veux empecher le déplacement du fenetre externe à ton application.
En tout cas le WndProc ne sera pas appelé comme tu as pu le constaté dans ton exemple.



-My Blog-



Cette discussion est classé dans : message, form, messages, intercepter, wndproc


Répondre à ce message

Sujets en rapport avec ce message

message de confirmation avec une windows form [ par Thanos_the_yopper ] Salutje fais une appli avec des fenetres windows et j'aimerais savoir comme faire pour faire apparaitre un message de confirmation (genre "etes-vous s Récupération d'UN seul message [ par LeHulk ] Bonjour,Nous créons une application qui doit récupérer des données stockées dans Exchange. Nous travaillons avec les objet MAPI. Nous arrivons à nous envoyer un message vers à Outlook [ par wacoum ] Mon programme n'arrive pas à envoyer les messages. Voici ci dessous le code qui devrait se charger d'envoyer mes messages:MailMessage myMail = new Mai Trapper un Sendkeys (CTRL+S) sur une form et executer un script [ par Arthenius ] Hello, voila mon pb j'ai fait une toolbar qui fait des senkeys(...) en fonction du bouton sur lequel on presse...par exemple si on presse sur le bouto message d'erreur amélioré [ par klem39 ] Bonjours, je suis entrain de coder un programme, et mes messages d'erreur ne sont pas très estétique avec les MessageBox, j'aimerais savoir si quelqu' Notify Message style XP [ par Amine ] salut !je veux savoir est ce que c'est possible d'utiliser les notify messages de windows XP (comme p.ex les notify messages des mises à jour) dans un Probleme avec WNDPROC [ par pigeon95efrei ] B Comment intercepter le message WM_WINDOWPOSCHANGING ? [ par jagxx ] Bonjour,J'aimerais intercepter le message WM_WINDOWPOSCHANGING d'une fenêtre externe (Titre : "window2") à mon application afin d'en interdire le depl Pile de message [ par taoetc ] Bonjour, j'aimerais savoir comment vider les piles de messages qu'il peut exister. Je connais le application.Doevents(); qui permet de traiter les mes Message quand on quitte une form [ par emmanuel9 ] Bonjour à tous, J'ai une form avec pleins de textbox et je voudrais que quand on quitte la form ca mette un message genre : "Voulez vous que vos modif


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,312 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é.